[英]How should I size my Spinner Image Size in Android app for different screen size/resolutions?
[英]Android: How to display IMAGE for Different screen resolutions/size programmatically
我正在閱讀有關Android的多屏支持文檔,需要澄清一下。
據我了解,設計三個獨特的界面(ldpi,mdpi和hdpi)將是支持所有潛在android屏幕的最佳方法。
但是我相信當您在設計時執行此操作時,這將成立。
但是,如果您以編程方式在運行時創建視圖並想要設置背景圖片,那么以上內容是否成立?
我正在嘗試使用以下方法在畫布上繪制位圖,
canvas.drawBitmap(BitmapFactory.decodeResource(getResources(),R.drawable.image_1),0,0,null); 在我的自定義視圖中擴展SurfaceView,然后在我的主要活動中使用此視圖。
現在我正在使用image_1.png,這是使用gimp的480 * 800像素。
如果我在上面的代碼中使用此圖像,則它無法正確顯示,並且圖像顯得較大,即圖像對於屏幕而言顯得太大,因此無法顯示全部內容。
您能否建議進行此操作的最佳方法是什么?
謝謝,--ad
看到。 將圖像分別放在3個文件夾中,每個文件夾具有不同的大小和分辨率,即hdpi,ldpi和mdpi。 您可以通過以下方式調用圖片:
R.drawable.image_name
不用擔心android會保重,在大屏幕上它將打開hdpi,而在小屏幕上,它將打開ldpi中的圖像。
定義時,高度和寬度以dp為單位而不是像素。
嗯,我不太熟悉該drawBitmap方法,但是我在文檔中確實看到了這一點:
“如果位圖和畫布具有不同的密度,則此功能將自動縮放位圖,以與畫布相同的密度進行繪制。”
Bitmap上有一個getDensity和setDensity方法,因此您可以調用getDensity看看它是什么,然后在drawBitmap之前嘗試一下setDensity來看看是否有幫助。
注意:Canvas還具有getDensity方法,因此您可以將其打印到日志中,並查看將位圖密度設置為相同的值是否可以防止縮放問題。
還有一個drawBitmap (Bitmap bitmap, Rect src, Rect dst, Paint paint)
方法,該方法在文檔中指出:“此函數忽略與位圖關聯的密度。這是因為源和目標矩形坐標空間位於它們各自的密度,因此必須已經應用了適當的縮放因子。”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.