在ImageView上绘制几个图层

时间:2012-11-03 12:29:49

标签: android android-canvas android-imageview

我正在尝试按照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();
    }
}

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方法从未执行过。

1 个答案:

答案 0 :(得分:2)

请改用LayerDrawable。构造它并传递给普通的ImageView