Jacek Kwiecień
Jacek Kwiecień

Reputation: 12637

Drawing several layers onto ImageView

I'm trying to follow instructions from Android developers site but I must be doing something wrong.

I tried to create custom ImageView and draw 2 bitmaps onto it.

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);
    }
}

There is nothing showing up on the screen and it's probably because the onDraw method is never executed.

Upvotes: 1

Views: 1562

Answers (1)

Alexander
Alexander

Reputation: 48262

Use LayerDrawable instead. Construct it and pass to a normal ImageView

Upvotes: 2

Related Questions