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 回答