2012-11-06 46 views
3

我實際上在遊戲中工作,因爲Canvas需要一些備份。畫布繪製小於原始的位圖圖片

我用畫布繪製背景。所以我爲了我們的屏幕分辨率製作了照片。在設備上,圖片很小,不適合屏幕。我錯過了抽籤讓它變小的東西嗎?

下面是一些代碼

public class Map extends View{ 
int[][] mapArray = new int[32][18]; 
private Bitmap picture; 
private Paint paint; 

public Map(Context context){ 
    //basic init map 
    super(context); 

    this.setPicture(BitmapFactory.decodeResource(context.getResources(), R.drawable.newmap2)); 
} 


public Bitmap getPicture() { 
    return picture; 
} 

public void setPicture(Bitmap background) { 
    this.picture = background; 
} 

@Override 
protected void onDraw(Canvas canvas) { 
    canvas.drawBitmap(picture, 0, 0, paint); 
} 

希望你能幫助我走出 問候 本

回答

1

也許你把位圖放在一個高dpi的目錄下(例如res/drawable-xhdpi),你的設備是低分辨率的?在這種情況下,圖像在打開時縮小。 你在做什麼是不安全的,其他設備將有其他屏幕尺寸。

+0

這是可能的。它實際上在hdpi分辨率爲1280x800。 是的,我知道這不是保存,但在這個時候,我們只是開發一個設備,所以它應該沒有縮放 – BennX

+0

在這種情況下,它在res-drawable-nodpi中處理它並不會縮放 – yoah

+0

這是解。非常感謝!在我們這個發展階段猜測它是最好的。 – BennX

0

您的設備可能有顯著不同的DPI(像素密度),可能要高得多,這將使它看起來像圖像比它應該小得多。如果你有一張圖片來展示它們究竟有多不同,那麼調試問題可能更容易。

+0

看到上評論 – BennX

0

這段代碼解釋瞭如何使用顯示器的尺寸來確定加載圖像時應發生的下采樣量。 希望可以幫助您

Display currentDisplay = getWindowManager().getDefaultDisplay(); 
int dw = currentDisplay.getWidth(); 
int dh = currentDisplay.getHeight();