2015-06-21 2 views
1

Перед этой проблемой стоит 2 дня. Я делаю 2D-игру через Canvas, и у нее есть PNG-файл, который я рисую на холсте drawBitmap(), и он отлично работает.getPixel(), дающий 0 для растрового изображения PNG: Android

Но для Per-Pixel-Collision обнаружения, я использую 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); 

Будучи новичком, у меня мало понимания растровых изображений и цветовой схемы, поэтому причина в том, почему это происходит, и любое решение будет очень полезно. Мой проект зашел в тупик для этой проблемы.

Спасибо

ответ

0

Получил решение самостоятельно. Это скорее обходное решение, чем решение, но оно работает.

Просто пройти 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); 
Смежные вопросы