请问如何在安卓中两个图片都用一半合并成一张图片。

  • 网上找到Bitmap,讲的也一盖而过。还是不会用,不懂。大佬们看看啦。


富国沪深
浏览 1003回答 3
3回答

慕工程0101907

//合成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); }

繁星coding

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这个对象,没经过测试,不知道行不行
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java