[英]Setting ImageView divides Drawable size by two
我已經創建了一個裝扮游戲應用程序。 用戶完成自己的角色裝扮后,可以將其保存到應用程序庫中。
我在畫布上使用canvas和drawbitmap生成最終圖像,然后將其顯示在應用程序的庫中。 xhdpi圖像尺寸應為600x900像素。 當此圖像顯示在常規android畫廊中時,顯示為600x900,並且(從信息中獲取)看起來足夠大。 但是,當我在應用程序中顯示它時,盡管ImageView設置為wrap_content,但它看起來要小得多。 此外,在進行修飾時,它也設置為wrap_content,看起來比應用程序庫中的大。
我的理論是,因為我嘗試使用.setImageDrawable(Drawable.createFromPath(path));進行編程設置。 由於屏幕是xhdpi,因此它將尺寸除以2。
我能做什么?
您可能在不是xhdpi
,而是hdpi
或mdpi
的設備上進行測試。
當您在密度存儲桶中提供圖形時,Android將負責調整該圖像的大小,以使其在所有設備上保持相同的物理尺寸(即,屏幕上的厘米大小)。
如果要使用原始可繪制對象,則可以在res/drawable-nodpi
文件夾中提供圖形。
如果您想保留密度桶,但圖形太小,請在res/drawable-mdpi
, res/drawable-hdpi
和res/drawable-xhdpi
提供正確的尺寸。
我不相信有任何方法可以通過Drawable.createFromPath()
防止這種行為。 您可以使用BitmapFactory
直接加載位圖,並使用setImageBitmap()
將其提供到ImageView中:
File f = new File(path);
Bitmap b = BitmapFactory.decodeFile(f.getAbsolutePath());
imageView.setImageBitmap(b);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.