[英]Image displayed partially if in drawable-xxhdpi
我正在使用此工廠通過ImageSwitcher顯示圖像:
view_background.setFactory {
val imageView = ImageView(this@MainActivity)
imageView.scaleType = ImageView.ScaleType.CENTER_CROP
imageView
}
而且我在Nexus 5模擬器上正確顯示了2341x1246 PNG
2.55 MB圖片:
但是,如果我在Nexus 6上使用它,則會崩潰:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.llovagn.t4r, PID: 4693
java.lang.RuntimeException: Canvas: trying to draw too large(142936136bytes) bitmap.
通過按照此答案的建議將其放入drawable-xxhdpi
,現在在兩個設備上都看起來像這樣:
我不想要的東西(第一種方法是正確的方法)。 為什么以及如何解決這個問題?
2341x1246 PNG 2.55 MB
畫布: 試圖繪制太大的位圖( 142936136bytes )
這似乎不是一個好方法。 減小圖像的尺寸,然后將圖像放在drawable
目錄中。
這是因為您將圖片放在“ drawable- xxhdpi ”中。 看一下這里的尺寸。
但是,按照我的建議進行操作之后,請使用FIT_XY
調整圖像大小:
imageView.scaleType = ImageView.ScaleType.FIT_XY
您的應用程序中不需要2.5 MB的圖像。 這樣的大小實在太多了。
為避免此錯誤,請嘗試使用盡可能小的圖像分辨率,而且圖像視圖也應該很小,您也可以在較大和高分辨率的設備上獲得OOM。 最好的方法是在背景視圖上使用png圖像,其中背景可以是純色或漸變。 通過這種方式,您可以使用較小的圖像,這些圖像可能不需要占據整個屏幕尺寸。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.