我的Android应用如何针对不同的屏幕分辨率进行优化?

时间:2014-06-14 00:55:54

标签: android xml

我正在构建我的第一个应用程序,我想让应用程序针对所有屏幕分辨率进行优化。 所以,我会告诉你我认为我应该做些什么 - 为了使我的应用程序工作 - 我到目前为止所发现的,但我不觉得我已经明白,尽管我读了一些相关的帖子

我的背景图像为480 x 800像素,高分辨率(hdp),320x480为中等res(mdp),240x320为低分辨率(ldp),600x1024为xhdp(??)。 然后,如果我把每一个放在“res”目录中的右侧文件夹中...例如“drawable-hdpi”以获得高分辨率等等......它会起作用吗?

这些是正确的尺寸吗?

这是我的Manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.etking.winningnumbersgenerator"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="19" />

     <supports-screens
    android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"        
    android:anyDensity="true" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.etking.winningnumbersgenerator.MainActivity"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
             >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

(请注意支持屏幕)

我的activity_main.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.etking.winningnumbersgenerator.MainActivity"
    tools:ignore="MergeRootFrame" />

我上面描述的方式是否正确? 我需要做什么?请帮我第一个应用程序!!!

P.S:如果您需要代码中的其他内容,请求它

编辑:(请在下面阅读)

我已经阅读了Android“支持多个屏幕”,但也许是我没有得到的东西。  我为每个可绘制文件夹创建了一个背景图像:240x320在drawable-ldpi文件夹中,320x480在drawable-mdpi中,480x800在drawable-hdpi中,640x960在drawable-xhdpi中,1200x1920在drawable-xxhpdi中。

应用在以下屏幕上显示(使用模拟器):

768x1280 xhdpi - 4.7'',| 480x800 hdpi - 4.0'',| 240x432 ldpi - 3.4'',| 1080x1920 xxhdpi - 4.95''(Nexus 5)和 320x480 mdpi - 3.2''

看起来不太好:  480x800 mdpi - 5.1''和1200x1920 xhdpi - 7''因为它在图像底部中间有太多空间。

还有 240x320 ldpi - 2.7''最靠近底部的按钮几乎被裁剪,因为它出现在屏幕的底部。

请注意,背景图像显示效果很好。 我为按钮添加了layout_width =“230dp”和layout_height =“50dp”。

Plase帮我解决这个问题!

P.S:我不允许发布图片,这样你就可以更好地理解:(

1 个答案:

答案 0 :(得分:0)

我建议你阅读Developer Guide on developing your app to support multiple Screen Sizes。它不仅可以帮助您关注屏幕尺寸,还可以屏幕DPI(每英寸密度)