3 回答
TA贡献1887条经验 获得超5个赞
//合成
public class MainActivity extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ImageView iv = findViewById(R.id.iv); Bitmap newP1 = getNewBitmap(R.drawable.p1); Bitmap newP2 = getNewBitmap(R.drawable.p2); Bitmap newBitmap = Bitmap.createBitmap( newP1.getWidth() + newP2.getWidth(), Math.max(newP1.getHeight(), newP2.getHeight()), Bitmap.Config.RGB_565 ); Canvas canvas = new Canvas(newBitmap); canvas.drawBitmap(newP1, 0, 0, null); canvas.drawBitmap(newP2, newP1.getWidth(), 0, null); iv.setImageBitmap(newBitmap); } private Bitmap getNewBitmap(@DrawableRes int resId) { Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resId); int width = bitmap.getWidth(); int height = bitmap.getHeight(); return Bitmap.createBitmap(bitmap, 0, 0, width / 2, height); }
}
//保存
public static boolean saveBitmap(Bitmap bitmap, File picFile, Bitmap.CompressFormat format) {
if (bitmap == null)
return false;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(picFile);
bitmap.compress(format, 100, fos);
fos.flush();
return true;
} catch (Exception e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return false;
}
public static boolean saveBitmap(Bitmap bitmap, File file) { return saveBitmap(bitmap, file, Bitmap.CompressFormat.PNG); }
TA贡献1797条经验 获得超4个赞
ImageView img1 = new ImageView(imageView.getContext());
Bitmap bitmap1 = Bitmap.createBitmap(img1.getWidth(),img1.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas1 = new Canvas(bitmap1);
img1.draw(canvas1);
ImageView img2 = new ImageView(imageView.getContext()); Bitmap bitmap2 = Bitmap.createBitmap(img2.getWidth(),img2.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas2 = new Canvas(bitmap2); img2.draw(canvas2); Bitmap bitmap = Bitmap.createBitmap(img1.getWidth() + img2.getWidth(),Math.max(img1.getHeight(),img2.getHeight()), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawBitmap(bitmap1,0f,0f,null); canvas.drawBitmap(bitmap2,img1.getWidth(),0f,null);
最后使用bitmap这个对象,没经过测试,不知道行不行
添加回答
举报