Android开发之多媒体编程之获取图片的副本

使用BitmapFactory的decodeFile()方法获取的Bitmap对象是只读的,无法进行编辑操作
需要进行编辑的话,需要获取到该对象的一个副本
代码如下:
 1 import android.app.Activity;
 2 import android.graphics.Bitmap;
 3 import android.graphics.BitmapFactory;
 4 import android.graphics.Canvas;
 5 import android.graphics.Matrix;
 6 import android.graphics.Paint;
 7 import android.os.Bundle;
 8 import android.widget.ImageView;
 9 
10 public class MainActivity extends Activity {
11 
12     @Override
13     protected void onCreate(Bundle savedInstanceState) {
14         super.onCreate(savedInstanceState);
15         setContentView(R.layout.activity_main);
16 
17         Bitmap bmSrc = BitmapFactory.decodeFile("sdcard/img15.jpg");
18         // 生产一份与原图宽高和配置一模一样的白纸
19         Bitmap bmCopy = Bitmap.createBitmap(bmSrc.getWidth(),
20                 bmSrc.getHeight(), bmSrc.getConfig());
21         // 设置画笔
22         Paint paint = new Paint();
23         // 打开画板,并把白纸铺在画板上
24         Canvas canvas = new Canvas(bmCopy);
25         // 把原图绘画到副本上
26         canvas.drawBitmap(bmSrc, new Matrix(), paint);
27         // 设置显示原图和副本
28         ImageView iv_src = (ImageView) findViewById(R.id.iv_src);
29         ImageView iv_copy = (ImageView) findViewById(R.id.iv_copy);
30         iv_src.setImageBitmap(bmSrc);
31         iv_copy.setImageBitmap(bmCopy);
32     }
33 
34 }

 

posted @ 2015-12-28 11:18  熠然  阅读(294)  评论(1编辑  收藏  举报