2 myq 26 myq_26 于 2013.04.17 13:50 提问

使用代码把两个图像结合起来

我使用下面的代码把两个图像结合起来。

 Bitmap pic = BitmapFactory.decodeResource(getResources(), R.drawable.me);
    Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.static);
    Canvas comboImage = new Canvas(map);
    Bitmap out1 = null ;
    comboImage.setBitmap(out1);
    comboImage.drawBitmap(pic, 600, 350, null);

假定我可以使用 bitmap out1 获取最后的图像,但是 comboImage.setBitmap(out1); 这一行引发崩溃。没有这一行不能看到任何图像。如何获取最后结合图像?

2个回答

windspeaker
windspeaker   2013.04.17 17:25
已采纳
Bitmap pic = BitmapFactory.decodeResource(getResources(), R.drawable.me);
Bitmap map = BitmapFactory.decodeResource(getResources(), R.drawable.static);

 **Bitmap out1 = Bitmap.createBitmap(width, height, Config.ARGB_8888);;
Canvas comboImage = new Canvas(out1);
comboImage.drawBitmap(map, 0, 0, null);
comboImage.drawBitmap(pic, 600, 350, null);** 
curie_87
curie_87 帮你编辑下代码!
4 年多之前 回复
baimy1985
baimy1985   2013.04.17 20:21

你是要把两张叠加成一张图?如果是下面的是可行的。

Bitmap bitmap1 = ((BitmapDrawable) getResources().getDrawable( R.drawable.ic_default_slide)).getBitmap();
Bitmap bitmap2 = ((BitmapDrawable) getResources().getDrawable(   R.drawable.ic_slide_player)).getBitmap();

Drawable[] array = new Drawable[2];
array[0] = new BitmapDrawable(bitmap1);
array[1] = new BitmapDrawable(bitmap2);
LayerDrawable la = new LayerDrawable(array);
// 其中第一个参数为层的索引号,后面的四个参数分别为left、top、right和bottom
la.setLayerInset(0, 0, 0, 0, 0);
la.setLayerInset(1, 20, 20, 20, 20);
im.setImageDrawable(la);
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!