【问题标题】:getPixel() giving 0 for PNG Bitmap:AndroidgetPixel() 为 PNG 位图提供 0:Android
【发布时间】:2015-09-06 20:16:07
【问题描述】:

我现在面临这个问题 2 天。我正在通过 Canvas 制作一个 2D 游戏,它有一个 PNG 文件,我通过 drawBitmap() 在画布上绘制它,它工作正常。

但是对于每像素碰撞检测,我使用 getPixel(),但它总是返回 0。

我正在通过以下方式创建位图-

Bitmap bmp= BitmapFactory.decodeResource(context.getResources(), R.drawable.image);
//image is a PNG file

但跟随总是给出 0-

Toast.makeText(getContext(),""+bmp.getPixel(x,y), Toast.LENGTH_SHORT).show();
//x and y are within the boundary

我什至尝试了以下,但结果相同-

BitmapFactory.Options opt=new BitmapFactory.Options();
opt.inMutable=true;
Bitmap bmp= BitmapFactory.decodeResource(context.getResources(), R.drawable.image,opt);

作为初学者,我对位图和配色方案了解不多,因此,为什么会发生这种情况以及任何解决方案都会有很大帮助。 由于这个问题,我的项目中途停止了。

谢谢

【问题讨论】:

    标签: android canvas bitmap png getpixel


    【解决方案1】:

    我自己找到了解决方案。它是一种解决方法,而不是解决方案,但它确实有效。

    只需将 BitmapFactory.Options 对象传递给 BitmapFactory.decodeStream,如下所示。

    BitmapFactory.Options opt = new BitmapFactory.Options();
    opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
    Bitmap source = BitmapFactory.decodeStream(context.getResources(), R.image,opt);
    

    【讨论】:

      猜你喜欢
      • 2012-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多