1

キャンバスに描画されたビットマップをアプリ ウィジェットの ImageView にレンダリングしようとしています。それを機能させることができません。RemoteViews オブジェクトを使用せずに、より単純な例を試しているので、いくつかの四角形をキャンバスにレンダリングしてから、それを ImageView に設定しようとしています。空白のアクティビティが表示されます。コードサンプルは次のとおりです。

LinearLayout layout = new LinearLayout (this);
layout.setDrawingCacheEnabled(true);
try
{
    Bitmap bitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap);
    Paint red = new Paint ();
    red.setColor(0xCC0000);
    Paint blue = new Paint ();
    blue.setColor (0x0099CC);
    canvas.drawRect(0, 0, 100, 100, red);
    int percent = 55;
    canvas.drawRect(0, 0, percent, 100, blue);
    ImageView imageView = new ImageView (this);
    imageView.setDrawingCacheEnabled(true);
    imageView.setImageBitmap(bitmap);
    imageView.setAdjustViewBounds(true);
    imageView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
              LayoutParams.WRAP_CONTENT));
    layout.addView(imageView);

}
catch(Exception e)
{
    Log.e("ElectionForecastWidgetProvider", "error with bar", e);
}
this.setContentView(layout);

スタック オーバーローなどで検索した後、setDrawingCacheEnabled メソッドを試すなど、さまざまな部分を微調整してきました。誰かがここで洞察を提供できますか? ありがとう!

4

1 に答える 1

1

色は ARGB 形式で表示されます。次のように変更してみてください。

...
red.setColor(0xFFCC0000);
...
blue.setColor (0xFF0099CC);
...
于 2012-09-17T19:55:14.463 に答える