2
我想做一個非常簡單的瓷磚引擎。但是,使用Bitmap.getpixel(x,y)
並不總是與顏色正確匹配。這似乎是在0xFFFFFFFF
,0xFF000000
,0xFF189600
和0xFF18FF00
,但與0xFF186600
有問題。我試圖將其更改爲多種不同的相似顏色,但它似乎仍未正確讀取它。我正在比較一個簡單的switch語句。這裏是我的方法Bitmap.getpixel不能正確讀取顏色?
public void LoadLevel(Canvas canvas, int levelName)
{
Bitmap level = BitmapFactory.decodeResource(getResources(), levelName);
Bitmap startTile = BitmapFactory.decodeResource(getResources(), R.drawable.starttile);
canvas.drawColor(Color.WHITE);
int drawX = 0;
int drawY = 0;
for(int y = 0; y < level.getHeight(); y++)
{
for(int x = 0; x < level.getWidth(); x++)
{
switch(level.getPixel(x, y))
{
case 0xFF000000: break;
case 0xFFFFFFFF:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
case 0xFF189600:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
case 0xFF18FF00:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
case 0xFF186600:
canvas.drawBitmap(startTile, drawX, drawY, null);
break;
}
Log.d("Color", Integer.toString(level.getPixel(x, y)));
drawX += 128;
}
drawX = 0;
drawY += 128;
}
}
根據日誌代碼,顏色爲「-15177472」。我不確定是什麼顏色,但實際上是...所以我不知道是否-15177472 == 0xFF186600
我不正確地做不到像素? Android是否改變圖像?我想使用安全的顏色嗎?
0xff39ff00似乎有效,但顏色與其他顏色太相似。這變得非常煩人。 – Taylor
它似乎是「安全」的顏色,如ffff00,ff00ff,0000ff,甚至00aeff。但不是999900,666600等。我不知道爲什麼,但這似乎是。真的很不準確。哇。 – Taylor