getPixel()为PNG位图提供0:Android
我现在面对这个问题已经两天了。我正在通过画布制作一个2D游戏,它有一个PNG文件,我用drawBitmap()在画布上绘制,效果很好 但对于每像素碰撞检测,我使用getPixel(),但它总是返回0 我用以下方法创建位图-getPixel()为PNG位图提供0:Android,android,canvas,bitmap,png,getpixel,Android,Canvas,Bitmap,Png,Getpixel,我现在面对这个问题已经两天了。我正在通过画布制作一个2D游戏,它有一个PNG文件,我用drawBitmap()在画布上绘制,效果很好 但对于每像素碰撞检测,我使用getPixel(),但它总是返回0 我用以下方法创建位图- Bitmap bmp= BitmapFactory.decodeResource(context.getResources(), R.drawable.image); //image is a PNG file 但是跟随总是给0- Toast.makeText(getCon
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);
作为一名初学者,我对位图和配色方案没有太多的了解,因此,了解为什么会发生这种情况以及任何解决方案都会有很大帮助。
我的项目因为这个问题中途停顿了
谢谢我自己找到了解决方案。这与其说是一个解决方案,不如说是一个变通办法,但它确实有效 只需将一个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);
我自己找到了解决办法。这与其说是一个解决方案,不如说是一个变通办法,但它确实有效 只需将一个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);