我正在尝试按照 Android 开发者网站的说明进行操作,但我一定是做错了什么。
我尝试创建自定义 ImageView 并在其上绘制 2 个位图。
Activity
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();
}
}
ImageView
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 方法。
最佳答案
使用LayerDrawable反而。构造它并传递给普通的 ImageView
关于android - 在 ImageView 上绘制多个图层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13209195/