내 첫 번째로 가장 멋진 Android 프로젝트의 경우, 요즘 아이들이 열광하고있는 Arc Clocks 중 하나를 표시하는 홈 화면 위젯을 만들고 싶습니다. RemoteViews의 한계를 바탕으로동적으로 그려진 콘텐츠로 Android 위젯을 구현하는 적절한 방법은 무엇입니까?
이, 그것은 적절한 방법이 실제로 화면이 실제 레이아웃에 ImageView을 사용하는 것입니다 그려 질 것을 나에게 보인다는 업데이트하고 다음 경우, ShapeDrawable 또는 두 가지를 만들고 그릴 새로 생성 된 에 추가합니다. 그런 다음 해당 비트 맵 ImageView 원본으로 설정하십시오.
나는 그저 grokking하지 않는 그 과정에 대해 뭔가가있다. 다음은 위젯을 업데이트하는 데 사용하려고 시도한 코드입니다. 나는 아무것도 화면에 그려지지 않습니다. ImageView의 자리 표시 자 이미지는 src
속성으로 설정됩니다. 코드를 실행하여 도면에 업데이트하지 않으면 자리 표시 자 이미지가 그대로 유지됩니다. 그래서,이 코드는 무언가가 일 뿐이며, 분명히 이 아니고 일이라고 생각합니다.
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
Bitmap bitmap = Bitmap.createBitmap(100, 100, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
ShapeDrawable drawable = new ShapeDrawable(new ArcShape(0, 360));
drawable.getPaint().setColor(0xffff0000);
drawable.getPaint().setStrokeWidth(5.0f);
drawable.setIntrinsicWidth(100);
drawable.setIntrinsicHeight(100);
drawable.draw(canvas);
views.setImageViewBitmap(R.id.ImageView01, bitmap);
appWidgetManager.updateAppWidget(appWidgetId, views);
나는 그렇게 쉽게 알 수 없다. 그래서 나는 올바른 방향으로 향하고 있습니까?
업데이트
좋아, 어쩌면 너무 많은 정보이었다. 내가 실제로 묻고 자하는 질문은 다음과 같습니다.
위젯에 도형을 그려야 할 경우 ImageView를 사용하여 ShapeDrawable에서 비트 맵을 만들거나 더 적절한 방법으로 위젯을 그려야합니다. 그것은 RemoteViews에 의해 제약이 있습니까?
그 위에 무언가를 그리려고 할 때 자리 표시자가 여전히 있다고 말하는 것입니까? – sandos
아니요, 자리 표시 자 이미지가 사라집니다. 화면에 아무것도 보이지 않게됩니다. 그러나 위젯을 누른 채로 여전히 제거 할 수 있습니다. – MojoFilter