开发者

How to create correct layout, to dsplay correctly in different screens?

i am developing Android application. In my application I have table layout for creating keyboard imitation. Each letter has own image, for displaying it. For wraping images row to current screen size I use "android:layout_height="wrap_content"" parameter, but it isn't resising images to fit the screen.

Here is cut of my layout:

<TableLayout android:id="@+id/keyBoard"
    android:layout_height="wrap_content"
        android:layout_width="wrap_content" android:layout_gravity="center"
        android:stretchColumns="*">
    <TableRow android:id="@+id/action_buttons"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal" android:gravity="center_horizontal"
        android:paddingBottom="5px">
        <ImageView android:id="@+id/let_q" android:src="@drawable/q"
            android:padding="1px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_w" android:src="@drawable/w"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_e" android:src="@drawable/e"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_r" android:src="@drawable/r"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_t" android:src="@drawable/t"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_y" android:src="@drawable/y"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_u" android:src="@drawable/u"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_i" android:src="@drawable/i"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_o" android:src="@drawable/o"
            android:padding="3px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_p" android:src="@drawable/p"
            android:padding="1px" android:layout_gravity="center" />
    </TableRow>
    <TableRow android:id="@+id/action_buttons"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:gravity="center_horizontal" android:paddingBottom="5px">
        <ImageView android:id="@+id/let_a" android:src="@drawable/a"
            android:padding="5px" />
        <ImageView android:id="@+id/let_s" android:src="@drawable/s"
            android:padding="5px" />
        <ImageView android:id="@+id/let_d" android:src="@drawable/d"
            android:padding="5px" />
        <ImageView android:id="@+id/let_f" android:src="@drawable/f"
            android:padding="5px" />
        <ImageView android:id="@+id/let_g" android:src="@drawable/g"
            android:padding="5px" />
        <ImageView android:id="@+id/let_h" android:src="@drawable/h"
            android:padding="5px" />
        <ImageView android:id="@+id/let_j" android:src="@drawable/j"
            android:padding="5px" />
        <ImageView android:id="@+id/let_k" android:src="@drawable/k"
            android:pa开发者_运维问答dding="5px" />
        <ImageView android:id="@+id/let_l" android:src="@drawable/l"
            android:padding="5px" />
    </TableRow>
    <TableRow android:id="@+id/action_buttons"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:gravity="center_horizontal" android:paddingBottom="5px">
        <ImageView android:id="@+id/let_z" android:src="@drawable/z"
            android:padding="5px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_x" android:src="@drawable/x"
            android:padding="5px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_c" android:src="@drawable/c"
            android:padding="5px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_v" android:src="@drawable/v"
            android:padding="5px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_b" android:src="@drawable/b"
            android:padding="5px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_n" android:src="@drawable/n"
            android:padding="5px" android:layout_gravity="center" />
        <ImageView android:id="@+id/let_m" android:src="@drawable/m"
            android:padding="5px" android:layout_gravity="center" />
    </TableRow>
</TableLayout>

What I am doing wrong? Because I am getting this result for some phones: Port view:

How to create correct layout, to dsplay correctly in different screens?

And for Land view:

How to create correct layout, to dsplay correctly in different screens?


It looks like the images you are using are large in size. So,wrap_content doesn't gives you expected result.

You need to resize Alphabets image, Ex. if current Image of Letter Q is 180 X 130 px then resize it to smaller size. Lets say 140 X 80 px.

Try it to your code. If you resize image and apply wrap_content then it will work ! Let me know if any problem exists. Thanks.


My way of creating layouts is providing width and height in 'dip' and not in 'px'.

And also you might have to use Relative Layout which would be handy

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜