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 }
直面挑战,躬身入局