我创建了一个可以在多种屏幕尺寸上运行的应用程序。我的应用程序在普通,大型和x大屏幕尺寸上运行,但我的应用程序不适用于小型手机。它的UI在小型手机上没有完整显示。请告诉我任何解决方案。
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true"
android:largestWidthLimitDp="720"
android:compatibleWidthLimitDp="720" />
答案 0 :(得分:0)
在清单中使用以下标记过滤掉小型手机:
<supports-screens android:resizeable=["true"| "false"]
android:smallScreens=["true" | "false"]
android:normalScreens=["true" | "false"]
android:largeScreens=["true" | "false"]
android:xlargeScreens=["true" | "false"]
android:anyDensity=["true" | "false"]
android:requiresSmallestWidthDp="integer"
android:compatibleWidthLimitDp="integer"
android:largestWidthLimitDp="integer"/>
其中:
android:smallScreens="false"
更多信息:
http://developer.android.com/guide/topics/manifest/supports-screens-element.html
其他方式是您可以检查您的代码。
启动应用程序时,检查屏幕大小,如果屏幕尺寸小于所需尺寸,请显示消息并退出应用程序。
前一种方法适用于在Google Play中过滤应用程序,但后一种方法将是一个很好的选择我认为尽管我没有找到任何人使用这种方法(如果用户尝试离线安装您的应用程序,则很好...意味着不是来自Google Play)。
答案 1 :(得分:0)
DisplayMetrics metrics = getResources().getDisplayMetrics();
Toast.makeText(getApplicationContext(), "density-"+metrics.density,Toast.LENGTH_SHORT).show();
if(metrics.density==1.5)
tv.setTextSize(size);
else if(metrics.density==2.0)
tv.setTextSize(size);
else if(metrics.density==3.0)
tv.setTextSize(size);
通过这个,你可以根据它找出你的小设备的密度,你可以设置textview的大小
答案 2 :(得分:0)
指定'android-smallscreens =“true”'将使其适用于小屏幕。它不会完全有助于解决您的问题。为了使您的应用程序可用于所有类型的设备,以下是从android开发人员资源中获取的点。
为不同的屏幕尺寸提供不同的布局。您可以用来提供特定于尺寸的资源的配置限定符是small,normal,large和xlarge。
为不同的屏幕密度提供不同的位图可绘制
不提供硬编码像素值
尝试使用相对布局而不是绝对布局。
查看this。
答案 3 :(得分:0)
您可以为小屏幕使用不同的布局文件夹
例如,对于240x320屏幕,您可以将资源名称中的单独文件夹作为layout-320x240
并将相同的xml放在文件夹中。