0
ImageView testImage = (ImageView) findViewById(R.id.imageView1);
Bitmap bitmap = ((BitmapDrawable)testImage.getDrawable()).getBitmap();
bitmap.setHasAlpha(true);
bitmap.setPixel(10, 10, Color.argb(255,255,255,255));

当我尝试在 onCreate 内的主要活动中运行此代码时,我的程序立即崩溃

我究竟做错了什么?我想做的就是改变位图中的一个像素

4

2 回答 2

0

有什么例外?我记得默认情况下位图是不可变的,这意味着您无法修改它。需要创建位图的副本。

于 2013-10-05T01:55:38.120 回答
0

这会起作用

    ImageView testImage = (ImageView) findViewById(R.id.imageView1);
    BitmapFactory.Options options = new BitmapFactory.Options();
    Resources res = context.getResources();
    options.inMutable = true;
    Bitmap bitmap = BitmapFactory.decodeResource(res, R.drawable.testImage,
                    options);
    bitmap.setPixel(10, 10, Color.argb(255,255,255,255));
于 2014-11-07T06:40:04.020 回答