码迷,mamicode.com
首页 > 移动开发 > 详细

Android 多媒体开发学习之创建图片的副本

时间:2015-07-30 21:27:36      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:创建图片的副本   android图片处理   

什么叫创建图片的副本? 因为我们直接从BitmapFactory取出来的图片是可读的,是不可以修改的。 假设用户想修改这张图片,一般是先根据原图在内存中创建和原图一模一样大小的图片,然后在上面修改,用户感觉好像是在原图上修改了,其实不然。


public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //1: 先需要获取到原图片. 注意:我们获得的图片是只读的,是不能写的,如果想修改图片,就得创建图片的copy
        Bitmap bmsRc = BitmapFactory.decodeResource(getResources(), R.drawable.abc);
        
        //2:创建图片的copy,可以在内存中创建一个和原图一模一样大小的bitmap
        Bitmap bmCopy = Bitmap.createBitmap(bmsRc.getWidth(), bmsRc.getHeight(), bmsRc.getConfig());
        
        //2.1 创建一个画笔
        Paint paint = new Paint();
        
        //2.2 创建画板对象
        Canvas canvas = new Canvas(bmCopy);
        
        //2.3 开始绘制和原图一模一样
        canvas.drawBitmap(bmsRc, new Matrix(), paint);
        
        //在图片上绘制一条直线,代表图片的副本是可以修改的
        canvas.drawLine(30, 30, 400, 400, paint);
        
        ImageView iv_src = (ImageView) findViewById(R.id.lv1);
        ImageView iv_copy = (ImageView) findViewById(R.id.lv2);
        
        //显示
        iv_src.setImageBitmap(bmsRc);
        iv_copy.setImageBitmap(bmCopy);
    }
}
其实创建图片的副本很简单,就如上代码描述一样

效果图如下:

技术分享

可以明显的看见,第二张图片是可以修改的。



版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 多媒体开发学习之创建图片的副本

标签:创建图片的副本   android图片处理   

原文地址:http://blog.csdn.net/longwang155069/article/details/47155737

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!