簡體   English   中英

位圖 getWidth 返回錯誤值

[英]Bitmap getWidth returns wrong value

我的 android 應用程序可繪制文件夾中有一個 jpg 圖像,分辨率為 1000x600。 我像這樣將該圖像加載到位圖

 Bitmap bitMap = BitmapFactory.decodeResource(getResources(), R.drawable.image);

在此之后,我調用bitMap .getWidth()返回 1500。它怎么可能? 以及如何獲得正確的圖像寬度和高度?

這可能是因為密度不同。 您的資源可能存儲在中等密度的文件夾中,但您的設備是 hdpi。 中密度為 160dpi,高密度為 240dpi。 因此,您的位圖被縮放到原來大小的 1.5 倍。 有關詳細信息,請參閱多個屏幕上文檔

如果資源在正確的密度下不可用,系統會加載默認資源並根據需要放大或縮小它們以匹配當前屏幕的密度。

如果您打算將其用於高密度,請將其放入 drawable-hdpi 而不是 drawable 或 drawable-mdpi。

更新:

如果您希望它忽略密度,請將其放在 drawable-nodpi 文件夾中。 也來自同一個文檔:

避免預縮放的最簡單方法是將資源放在帶有 nodpi 配置限定符的資源目錄中。 例如:

res/drawable-nodpi/icon.png

當系統使用此文件夾中的 icon.png 位圖時,它不會根據當前設備密度對其進行縮放。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM