Android高屏幕问题

时间:2014-12-14 10:43:05

标签: android image scale relativelayout

我目前在支持不同的屏幕尺寸方面遇到了很多问题,但这令人沮丧。 我正在写一个游戏,我正处于最后阶段。我设计了一个自定义键盘,并调整它以适应不同的屏幕,但我目前遇到更高分辨率,更高屏幕(例如540x960,720x1280)的问题。已经为每个dp提供了资源。

这是在这些屏幕上发生的事情:

On 540x960 在540x960

这是我的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:fontspace="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

    <com.example.classes.FontImageButton
        android:id="@+id/qButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="q" />

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/wButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/qButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="w"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/eButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/wButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="e"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/rButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/eButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="r"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/tButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/rButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="t"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/zButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/tButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="z"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/uButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/zButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="u"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/iButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/uButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="i"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/oButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/iButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="o"/>

    <com.example.classes.FontImageButton
        style="@style/button"
        android:id="@+id/pButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/oButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="p"/>

    <com.example.classes.FontImageButton
        android:id="@+id/aButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/qButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="a" />

    <com.example.classes.FontImageButton
        android:id="@+id/sButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/wButton"
        android:layout_toRightOf="@+id/aButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="s" />

    <com.example.classes.FontImageButton
        android:id="@+id/dButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/eButton"
        android:layout_toRightOf="@+id/sButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="d" />

    <com.example.classes.FontImageButton
        android:id="@+id/fButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rButton"
        android:layout_toRightOf="@+id/dButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="f" />

    <com.example.classes.FontImageButton
        android:id="@+id/gButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/tButton"
        android:layout_toRightOf="@+id/fButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="g" />

    <com.example.classes.FontImageButton
        android:id="@+id/hButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/zButton"
        android:layout_toRightOf="@+id/gButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="h" />

    <com.example.classes.FontImageButton
        android:id="@+id/jButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/uButton"
        android:layout_toRightOf="@+id/hButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="j" />

    <com.example.classes.FontImageButton
        android:id="@+id/kButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/iButton"
        android:layout_toRightOf="@+id/jButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="k" />

    <com.example.classes.FontImageButton
        android:id="@+id/lButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/iButton"
        android:layout_toRightOf="@+id/kButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="l" />

    <com.example.classes.FontImageButton
        android:id="@+id/yButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/sButton"
        android:textSize="18sp"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="y" />

    <com.example.classes.FontImageButton
        android:id="@+id/xButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:layout_below="@+id/dButton"
        android:layout_toRightOf="@+id/yButton"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="x" />

    <com.example.classes.FontImageButton
        android:id="@+id/cButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="18sp"
        android:layout_below="@+id/fButton"
        android:layout_toRightOf="@+id/xButton"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="c" />

    <com.example.classes.FontImageButton
        android:id="@+id/vButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:textSize="18sp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/gButton"
        android:layout_toRightOf="@+id/cButton"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="v" />

    <com.example.classes.FontImageButton
        android:id="@+id/bButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:textSize="18sp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/hButton"
        android:layout_toRightOf="@+id/vButton"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="b" />

    <com.example.classes.FontImageButton
        android:id="@+id/nButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:textSize="18sp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/jButton"
        android:layout_toRightOf="@+id/bButton"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="n" />

    <com.example.classes.FontImageButton
        android:id="@+id/mButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:textSize="18sp"
        android:layout_height="wrap_content"
        android:layout_below="@+id/kButton"
        android:layout_toRightOf="@+id/nButton"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="m" />

    <com.example.classes.FontImageButton
        android:id="@+id/backspaceButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/lButton"
        android:layout_below="@+id/pButton"
        android:minHeight="0dp"
        android:minWidth="0dp"
        android:text="" />

    <com.example.classes.FontImageButton
        android:id="@+id/enterButton"
        style="@style/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/kButton"
        android:layout_marginRight="2dp"
        android:text="" />
        </RelativeLayout>
    </LinearLayout>



</RelativeLayout>

我是否需要为键盘按钮提供新的设计?

编辑:

http://pastebin.com/Tx2QjA7E我已添加为DerGolem建议,但没有更改。

EDIT1:

http://pastebin.com/kyAk18BK - FontImageButton类

1 个答案:

答案 0 :(得分:0)

最后,我决定不为此目的使用xml,并且我以编程方式检查了分辨率并相应地调整了FontImageButton的layout_width,解决了我的问题。