1

Android 開発者サイトの指示に従おうとしていますが、何か間違ったことをしているに違いありません。

カスタム ImageView を作成し、それに 2 つのビットマップを描画しようとしました。

アクティビティ

public class TestActivity extends Activity {    

    @Override
    protected void onCreate(Bundle savedInstanceState) {    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test_layout);       
        LinearLayout left = (LinearLayout) findViewById(R.id.container);

        ModuleImageView iv = new ModuleImageView(this);
        left.addView(iv);
        iv.invalidate();
    }
}

イメージビュー

public class ModuleImageView extends ImageView{ 

    public ModuleImageView(Context context) {
        super(context); 

    }

    @Override
    protected void onDraw(Canvas canvas) {
        Bitmap b1 = BitmapFactory.decodeResource(getResources(), R.drawable.main_engine);
        Bitmap b2 = BitmapFactory.decodeResource(getResources(), R.drawable.energy);
        canvas.drawBitmap(b1, 0, 0, null);
        canvas.drawBitmap(b2, 5, 5, null);

        super.onDraw(canvas);
    }
}

画面に何も表示されないのは、おそらく onDraw メソッドが実行されていないためです。

4

1 に答える 1

2

代わりにLayerDrawableを使用してください。それを構築し、通常の ImageView に渡します

于 2012-11-03T12:57:50.103 に答える