前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 多媒体开发学习之创建图片的副本

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

作者头像
DragonKingZhu
发布2022-05-08 16:31:08
4750
发布2022-05-08 16:31:08
举报
文章被收录于专栏:Linux内核深入分析

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

代码语言:javascript
复制
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);
    }
}

其实创建图片的副本很简单,就如上代码描述一样

效果图如下:

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-07-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档