适用于多种设备的Android UI

时间:2010-10-28 03:46:07

标签: android

有没有办法确保我的Android UI能够在不同手机上按预期显示?

4 个答案:

答案 0 :(得分:4)

浏览developers guide on supporting multiple screens。它为您提供有关该主题的所有信息。

答案 1 :(得分:3)

这将是我建议的第一站:

http://developer.android.com/guide/practices/screens_support.html

  

“本文件解释了   屏幕支持功能   平台以及您如何使用它们   你的申请。通过遵循   这里描述的做法,你可以   轻松创建一个应用程序   在所有支持的上正确显示   设备屏幕,您可以部署   将任何设备作为单个.apk。“以任何设备作为单个.apk。”

答案 2 :(得分:3)

在您的build.gradle(Module:app)中添加以下依赖项:

//for dynamic ui change
implementation "com.intuit.sdp:sdp-android:1.0.5"
implementation "com.intuit.ssp:ssp-android:1.0.4"

在您的dimen.xml文件中添加以下行:

<dimen name="dimen_1dp">@dimen/_1sdp</dimen>
<dimen name="dimen_2dp">@dimen/_2sdp</dimen>
<dimen name="dimen_3dp">@dimen/_3sdp</dimen>
<dimen name="dimen_4dp">@dimen/_4sdp</dimen>
<dimen name="dimen_5dp">@dimen/_5sdp</dimen>
<dimen name="dimen_6dp">@dimen/_6sdp</dimen>
<dimen name="dimen_7dp">@dimen/_7sdp</dimen>
<dimen name="dimen_8dp">@dimen/_8sdp</dimen>
<dimen name="dimen_9dp">@dimen/_9sdp</dimen>
<dimen name="dimen_10dp">@dimen/_10sdp</dimen>
<dimen name="dimen_11dp">@dimen/_11sdp</dimen>
<dimen name="dimen_12dp">@dimen/_12sdp</dimen>
<dimen name="dimen_13dp">@dimen/_13sdp</dimen>
<dimen name="dimen_14dp">@dimen/_14sdp</dimen>
<dimen name="dimen_15dp">@dimen/_15sdp</dimen>
<dimen name="dimen_16dp">@dimen/_16sdp</dimen>
<dimen name="dimen_17dp">@dimen/_17sdp</dimen>
<dimen name="dimen_18dp">@dimen/_18sdp</dimen>
<dimen name="dimen_19dp">@dimen/_19sdp</dimen>
<dimen name="dimen_20dp">@dimen/_20sdp</dimen>
<dimen name="dimen_21dp">@dimen/_21sdp</dimen>
<dimen name="dimen_22dp">@dimen/_22sdp</dimen>
<dimen name="dimen_23dp">@dimen/_23sdp</dimen>
<dimen name="dimen_24dp">@dimen/_24sdp</dimen>
<dimen name="dimen_25dp">@dimen/_25sdp</dimen>
<dimen name="dimen_26dp">@dimen/_26sdp</dimen>
<dimen name="dimen_27dp">@dimen/_27sdp</dimen>
<dimen name="dimen_28dp">@dimen/_28sdp</dimen>
<dimen name="dimen_29dp">@dimen/_29sdp</dimen>
<dimen name="dimen_30dp">@dimen/_30sdp</dimen>
<dimen name="dimen_31dp">@dimen/_31sdp</dimen>
<dimen name="dimen_32dp">@dimen/_32sdp</dimen>
<dimen name="dimen_33dp">@dimen/_33sdp</dimen>
<dimen name="dimen_34dp">@dimen/_34sdp</dimen>
<dimen name="dimen_35dp">@dimen/_35sdp</dimen>
<dimen name="dimen_36dp">@dimen/_36sdp</dimen>
<dimen name="dimen_37dp">@dimen/_37sdp</dimen>
<dimen name="dimen_38dp">@dimen/_38sdp</dimen>
<dimen name="dimen_39dp">@dimen/_39sdp</dimen>
<dimen name="dimen_40dp">@dimen/_40sdp</dimen>
<dimen name="dimen_41dp">@dimen/_41sdp</dimen>
<dimen name="dimen_42dp">@dimen/_42sdp</dimen>
<dimen name="dimen_43dp">@dimen/_43sdp</dimen>
<dimen name="dimen_44dp">@dimen/_44sdp</dimen>
<dimen name="dimen_45dp">@dimen/_45sdp</dimen>
<dimen name="dimen_46dp">@dimen/_46sdp</dimen>
<dimen name="dimen_47dp">@dimen/_47sdp</dimen>
<dimen name="dimen_48dp">@dimen/_48sdp</dimen>
<dimen name="dimen_49dp">@dimen/_49sdp</dimen>
<dimen name="dimen_50dp">@dimen/_50sdp</dimen>
<dimen name="dimen_51dp">@dimen/_51sdp</dimen>
<dimen name="dimen_52dp">@dimen/_52sdp</dimen>
<dimen name="dimen_53dp">@dimen/_53sdp</dimen>
<dimen name="dimen_54dp">@dimen/_54sdp</dimen>
<dimen name="dimen_55dp">@dimen/_55sdp</dimen>
<dimen name="dimen_56dp">@dimen/_56sdp</dimen>
<dimen name="dimen_57dp">@dimen/_57sdp</dimen>
<dimen name="dimen_58dp">@dimen/_58sdp</dimen>
<dimen name="dimen_59dp">@dimen/_59sdp</dimen>
<dimen name="dimen_60dp">@dimen/_60sdp</dimen>
<dimen name="dimen_61dp">@dimen/_61sdp</dimen>
<dimen name="dimen_62dp">@dimen/_62sdp</dimen>
<dimen name="dimen_63dp">@dimen/_63sdp</dimen>
<dimen name="dimen_64dp">@dimen/_64sdp</dimen>
<dimen name="dimen_65dp">@dimen/_65sdp</dimen>
<dimen name="dimen_66dp">@dimen/_66sdp</dimen>
<dimen name="dimen_67dp">@dimen/_67sdp</dimen>
<dimen name="dimen_68dp">@dimen/_68sdp</dimen>
<dimen name="dimen_69dp">@dimen/_69sdp</dimen>
<dimen name="dimen_70dp">@dimen/_70sdp</dimen>
<dimen name="dimen_71dp">@dimen/_71sdp</dimen>
<dimen name="dimen_72dp">@dimen/_72sdp</dimen>
<dimen name="dimen_73dp">@dimen/_73sdp</dimen>
<dimen name="dimen_74dp">@dimen/_74sdp</dimen>
<dimen name="dimen_75dp">@dimen/_75sdp</dimen>
<dimen name="dimen_76dp">@dimen/_76sdp</dimen>
<dimen name="dimen_77dp">@dimen/_77sdp</dimen>
<dimen name="dimen_78dp">@dimen/_78sdp</dimen>
<dimen name="dimen_79dp">@dimen/_79sdp</dimen>
<dimen name="dimen_80dp">@dimen/_80sdp</dimen>
<dimen name="dimen_81dp">@dimen/_81sdp</dimen>
<dimen name="dimen_82dp">@dimen/_82sdp</dimen>
<dimen name="dimen_83dp">@dimen/_83sdp</dimen>
<dimen name="dimen_84dp">@dimen/_84sdp</dimen>
<dimen name="dimen_85dp">@dimen/_85sdp</dimen>
<dimen name="dimen_86dp">@dimen/_86sdp</dimen>
<dimen name="dimen_87dp">@dimen/_87sdp</dimen>
<dimen name="dimen_88dp">@dimen/_88sdp</dimen>
<dimen name="dimen_89dp">@dimen/_89sdp</dimen>
<dimen name="dimen_90dp">@dimen/_90sdp</dimen>
<dimen name="dimen_91dp">@dimen/_91sdp</dimen>
<dimen name="dimen_92dp">@dimen/_92sdp</dimen>
<dimen name="dimen_93dp">@dimen/_93sdp</dimen>
<dimen name="dimen_94dp">@dimen/_94sdp</dimen>
<dimen name="dimen_95dp">@dimen/_95sdp</dimen>
<dimen name="dimen_96dp">@dimen/_96sdp</dimen>
<dimen name="dimen_97dp">@dimen/_97sdp</dimen>
<dimen name="dimen_98dp">@dimen/_98sdp</dimen>
<dimen name="dimen_99dp">@dimen/_99sdp</dimen>
<dimen name="dimen_100dp">@dimen/_100sdp</dimen>
<dimen name="dimen_105dp">@dimen/_105sdp</dimen>
<dimen name="dimen_110dp">@dimen/_110sdp</dimen>
<dimen name="dimen_112dp">@dimen/_112sdp</dimen>
<dimen name="dimen_115dp">@dimen/_115sdp</dimen>
<dimen name="dimen_120dp">@dimen/_120sdp</dimen>
<dimen name="dimen_125dp">@dimen/_125sdp</dimen>
<dimen name="dimen_130dp">@dimen/_130sdp</dimen>
<dimen name="dimen_135dp">@dimen/_135sdp</dimen>
<dimen name="dimen_140dp">@dimen/_140sdp</dimen>
<dimen name="dimen_145dp">@dimen/_145sdp</dimen>
<dimen name="dimen_150dp">@dimen/_150sdp</dimen>
<dimen name="dimen_160dp">@dimen/_160sdp</dimen>
<dimen name="dimen_170dp">@dimen/_170sdp</dimen>
<dimen name="dimen_180dp">@dimen/_180sdp</dimen>
<dimen name="dimen_190dp">@dimen/_190sdp</dimen>
<dimen name="dimen_200dp">@dimen/_200sdp</dimen>
<dimen name="dimen_203dp">@dimen/_203sdp</dimen>
<dimen name="dimen_205dp">@dimen/_205sdp</dimen>
<dimen name="dimen_210dp">@dimen/_210sdp</dimen>
<dimen name="dimen_215dp">@dimen/_215sdp</dimen>
<dimen name="dimen_220dp">@dimen/_220sdp</dimen>
<dimen name="dimen_230dp">@dimen/_230sdp</dimen>
<dimen name="dimen_250dp">@dimen/_250sdp</dimen>
<dimen name="dimen_300dp">@dimen/_300sdp</dimen>
<dimen name="dimen_400dp">@dimen/_400sdp</dimen>
<dimen name="dimen_450dp">@dimen/_450sdp</dimen>
<dimen name="dimen_500dp">@dimen/_500sdp</dimen>
<dimen name="dimen_600dp">@dimen/_600sdp</dimen>


<!--FONT-->
<dimen name="font_5sp">@dimen/_5ssp</dimen>
<dimen name="font_8sp">@dimen/_8ssp</dimen>
<dimen name="font_9sp">@dimen/_9ssp</dimen>
<dimen name="font_10sp">@dimen/_10ssp</dimen>
<dimen name="font_11sp">@dimen/_11ssp</dimen>
<dimen name="font_12sp">@dimen/_12ssp</dimen>
<dimen name="font_13sp">@dimen/_13ssp</dimen>
<dimen name="font_14sp">@dimen/_14ssp</dimen>
<dimen name="font_15sp">@dimen/_15ssp</dimen>
<dimen name="font_16sp">@dimen/_16ssp</dimen>
<dimen name="font_17sp">@dimen/_17ssp</dimen>
<dimen name="font_18sp">@dimen/_18ssp</dimen>
<dimen name="font_19sp">@dimen/_19ssp</dimen>
<dimen name="font_20sp">@dimen/_20ssp</dimen>
<dimen name="font_21sp">@dimen/_21ssp</dimen>
<dimen name="font_22sp">@dimen/_22ssp</dimen>
<dimen name="font_23sp">@dimen/_23ssp</dimen>
<dimen name="font_24sp">@dimen/_24ssp</dimen>
<dimen name="font_25sp">@dimen/_25ssp</dimen>
<dimen name="font_26sp">@dimen/_26ssp</dimen>
<dimen name="font_27sp">@dimen/_27ssp</dimen>
<dimen name="font_28sp">@dimen/_28ssp</dimen>
<dimen name="font_29sp">@dimen/_29ssp</dimen>
<dimen name="font_30sp">@dimen/_30ssp</dimen>
<dimen name="font_31sp">@dimen/_31ssp</dimen>
<dimen name="font_32sp">@dimen/_32ssp</dimen>
<dimen name="font_33sp">@dimen/_33ssp</dimen>
<dimen name="font_34sp">@dimen/_34ssp</dimen>
<dimen name="font_35sp">@dimen/_35ssp</dimen>
<dimen name="font_36sp">@dimen/_36ssp</dimen>
<dimen name="font_37sp">@dimen/_37ssp</dimen>
<dimen name="font_38sp">@dimen/_38ssp</dimen>
<dimen name="font_39sp">@dimen/_39ssp</dimen>
<dimen name="font_40sp">@dimen/_40ssp</dimen>
<dimen name="font_41sp">@dimen/_41ssp</dimen>
<dimen name="font_42sp">@dimen/_42ssp</dimen>
<dimen name="font_43sp">@dimen/_43ssp</dimen>
<dimen name="font_44sp">@dimen/_44ssp</dimen>
<dimen name="font_45sp">@dimen/_45ssp</dimen>
<dimen name="font_46sp">@dimen/_46ssp</dimen>
<dimen name="font_47sp">@dimen/_47ssp</dimen>
<dimen name="font_48sp">@dimen/_48ssp</dimen>
<dimen name="font_49sp">@dimen/_49ssp</dimen>
<dimen name="font_50sp">@dimen/_50ssp</dimen>

您可以根据项目的要求添加更多尺寸。

假设您使用的是XMLView,则可以在dimen.xml文件夹中使用此尺寸,如下所示:

 <TextView
       android:id="@+id/tvName"
       android:layout_width="@dimen/dimen_30dp"
       android:layout_height="@dimen/dimen_30dp"
       android:textSize="@dimen/font_8sp"
       android:text="Name" /> 

答案 3 :(得分:2)

多个设备有两个主要考虑因素:

  1. 确保您的应用能够很好地处理带有或不带硬件键盘的手机的方向变化
  2. 显示相对于屏幕尺寸的UI元素。
  3. 在后一点上,如果使用文字像素值声明所有内容,则特定设备的屏幕可能会太大或太小而无法正确显示。但是,如果您根据屏幕尺寸调整所有尺寸,那么一切都将在正确的位置。