[英]Reuse drawable images for different screen sizes and densities on Android
背景:我正在為平板電腦(風景)開發一個Android應用程序,其圖像資源的分辨率為1920x1200。 該分辨率適合以下屏幕尺寸和密度:
drawable-xlarge-hdpi
drawable-large-xhdpi
問題:如果我在這兩個文件夾中包含所有重復的圖像資源,則APK的最終大小將不必要地大
我的方法不成功:我嘗試使用Alias來實現此處定義的drawable: http : //developer.android.com/guide/topics/resources/providing-resources.html#AliasResources
我有我的圖像資源:
res/drawable-nodpi/image_cmn.png
和相應屏幕大小和密度文件夾中的兩個別名:
res/drawable-xlarge-hdpi/image.xml
res/drawable-large-xhdpi/image.xml
image.xml:
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/image_cmn" />
當然,當我在布局文件中使用我的圖像時,我引用了別名:
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/image" />
但遺憾的是Android沒有正確調整我的測試平板電腦(mdpi)的資源,結果是我有更大的圖像。
我試圖將原始png移動到res / drawable甚至res / raw但結果與res / drawable-nodpi相同 。
如果我將此png移動到res / drawable-xlarge-hdpi (與xml別名相同),結果是正確的但自然不能解決我的問題因為我也必須將它們復制到res / drawable-large-xhdpi和apk大小增加。
有誰知道如何實現這一目標?
我試圖避免在ImageViews上使用wrap_content,因為不同的平台版本會不同地調整圖像大小,如果在dp中放置一個明確的寬度和高度,那么選擇哪個圖像並不重要。
在你的情況下,我會在drawable / xhdpi中有一個圖像。 在dp中的布局文件中指定它的寬度和高度。 對於1920x1200px的圖像,即layout_width =“960dp”layout_height =“600dp”
與大型平板電腦相比,x-large平板電腦上的圖像尺寸大致相同。
如果您希望圖像在x-large平板電腦上更大,請包含第二個布局文件,其中圖像的寬度和高度會增加但保持相同的圖像。
或者,您可以使用大型和x大型之間不同的維度資源。
我可以為這個問題提出兩個解決方案:
第一:
ImageView
。 第二個(它很難看,但非常快):
只需使用tinypng.com壓縮您的png圖像即可 。 它可以將圖像重新調整到70-80%而不會降低質量(適用於移動設備)。
這個怎么樣:
res/drawable-nodpi
res/layout-xlarge
, res/layout-large
, res/layout
ImageView
上使用此圖像時,請勿使用match_parent
或wrap_content
,而是使用dp中的計算大小。 這應該工作,但是,缺點是它不使用預縮放 ,這意味着在較低的dpi設備上,它將消耗更多的內存。
如果你想為所有尺寸的設備使用相同的圖像,那么我認為你必須使用9-Patch Images。
Android官方文章點擊此處。
之前:
后:
請參閱: Android 9 Patch Image Tutorial
希望能幫助到你。
如果你想為所有尺寸的設備使用相同的圖像,那么我認為你應該使用9補丁圖像,每個布局包含在android中的線性布局內的重量標簽。 我認為這是100%的工作。 我確定。 因為我使用這種方法進行通用應用(意味着平板電腦和設備應用)
好的,我得到了你的問題。我的話與這個問題有關
有兩種方式,我推薦兩種方式。
第一種方式 (與您當前的問題相關更方便。)
如果大小變大,則上傳多個apk。
按照官方指南 。
第二種方式我更喜歡用這種方式。
創建多個布局。 如下
res / layout /main_activity.xml --->#適用於手機 (可用寬度小於600dp)
res / layout-sw600dp /main_activity.xml - >#適用於7“平板電腦 (600dp寬大)
res / layout-sw720dp /main_activity.xml#適用於10英寸平板電腦 (720dp寬大)
謝謝。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.