android不可以对原图直接操作可以拷贝图片生产副本,在副本进行操作

  ImageView originalImage, copyImage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_copy_image);
        //原图
        originalImage = findViewById(R.id.original_image);
        //副本
        copyImage = findViewById(R.id.copy_image);
        //把图片转换成功bitmap
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.timg);
        originalImage.setImageBitmap(bitmap);
        /*
         * 不可以对原图进行操作
         * */
        //创建原图副本
        //创建了一个和原图一样大小的空白的白纸
        Bitmap copyBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
        //想作画需要一个画笔
        Paint paint = new Paint();
        //创建一个画布 把白纸铺到画布上
        Canvas canvas = new Canvas(copyBitmap);
        //开始作画
        canvas.drawBitmap(bitmap, new Matrix(), paint);
        /*
         * 可以操作副本
         * */
        //操作画出的图片
        for (int i=0;i<600;i++){
            copyBitmap.setPixel(20+i, 2+i, Color.RED);
        }

        //显示copyBitmap
        copyImage.setImageBitmap(copyBitmap);
    }
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐