Android的看法不结垢不同大小的设备 [英] Android views not scaling on different sized devices

查看:141
本文介绍了Android的看法不结垢不同大小的设备的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的Eclipse我有图片和按键与他们的宽度和高度DP上设置访问量:

 <按钮
    机器人:ID =@ + ID / btn_menu_games
    机器人:layout_width =70dp
    机器人:layout_height =70dp
    机器人:layout_gravity =中心
    机器人:背景=@绘制/ ico_games
    安卓的onClick =goToGames/>

但是,当我使用不同的设备的图像和按钮不缩放相对于屏幕的,所以他们是一个小屏幕上真正的大和非常小的在大屏幕上。我是不是做错事的看法?我需要在清单设置什么吗?

感谢。

全部code:

 <?XML版本=1.0编码=UTF-8&GT?;
< LinearLayout中的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:背景=@绘制/ bg_portrait
    机器人:重力=CENTER_HORIZONTAL
    机器人:方向=垂直>
    < ImageView的
        机器人:ID =@ + ID / imageView1
        机器人:layout_width =234dp
        机器人:layout_height =156dp
        机器人:layout_marginBottom =15dp
        机器人:layout_marginLeft =20dp
        机器人:layout_marginRight =20dp
        机器人:layout_marginTop =10dp
        机器人:SRC =@绘制/旗/>
    <的LinearLayout
        机器人:ID =@ + ID / linearLayout1
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        >        <的LinearLayout
            机器人:ID =@ + ID / linearLayout2
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:方向=垂直
            机器人:layout_marginRight =20dp>
                <按钮
                    机器人:ID =@ + ID / btn_menu_games
                    机器人:layout_width =70dp
                    机器人:layout_height =70dp
                    机器人:layout_gravity =中心
                    机器人:背景=@绘制/ ico_games
                    安卓的onClick =goToGames/>
        < com.academyGeneric.MyTextView
            机器人:ID =@ + ID / textView1
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_gravity =中心
            机器人:文字颜色=#8c0101
            机器人:文字=游戏
            机器人:layout_marginBottom =5DP
            机器人:textAppearance =:/>中的Andr​​oid ATTR / textAppearanceLarge?
        <按钮
            机器人:ID =@ + ID / btn_menu_lessons
            机器人:layout_width =70dp
            机器人:layout_height =70dp
            机器人:layout_gravity =中心
            机器人:背景=@绘制/ ico_lessons/>
       < com.academyGeneric.MyTextView
           机器人:ID =@ + ID / textView2
           机器人:layout_width =WRAP_CONTENT
           机器人:layout_height =WRAP_CONTENT
           机器人:layout_gravity =中心
           机器人:文字=教训
           机器人:layout_marginBottom =5DP
           机器人:文字颜色=#8c0101
           机器人:textAppearance =:/>中的Andr​​oid ATTR / textAppearanceLarge?
          <按钮
              机器人:ID =@ + ID / btn_menu_settings
              机器人:layout_width =70dp
              机器人:layout_height =70dp
              机器人:layout_gravity =中心
              机器人:背景=@绘制/ ico_settings
              安卓的onClick =goToSettings/>        < com.academyGeneric.MyTextView
            机器人:ID =@ + ID / textView3
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_gravity =中心
            机器人:文字=设置
            机器人:文字颜色=#8c0101
            机器人:textAppearance =:/>中的Andr​​oid ATTR / textAppearanceLarge?< / LinearLayout中>
<的LinearLayout
     机器人:ID =@ + ID / linearLayout2
     机器人:layout_width =WRAP_CONTENT
     机器人:layout_height =WRAP_CONTENT
     机器人:方向=垂直
     机器人:layout_marginLeft =20dp>            <按钮
                机器人:ID =@ + ID / btn_menu_dictionary
                机器人:layout_width =70dp
                机器人:layout_height =70dp
                机器人:layout_gravity =中心
                机器人:背景=@绘制/ ico_dictionary
                安卓的onClick =goToDictionary/>
        < com.academyGeneric.MyTextView
            机器人:ID =@ + ID / textView4
            机器人:layout_width =WRAP_CONTENT
            机器人:layout_height =WRAP_CONTENT
            机器人:layout_gravity =中心
            机器人:文字=说文解字
            机器人:layout_marginBottom =5DP
            机器人:文字颜色=#8c0101
            机器人:textAppearance =:/>中的Andr​​oid ATTR / textAppearanceLarge?
        <按钮
            机器人:ID =@ + ID / btn_menu_statistics
            机器人:layout_width =70dp
            机器人:layout_height =70dp
            机器人:layout_gravity =中心
            机器人:背景=@绘制/ ico_stats/>        < com.academyGeneric.MyTextView
        机器人:ID =@ + ID / textView5
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_gravity =中心
        机器人:文字=统计
        机器人:layout_marginBottom =5DP
        机器人:文字颜色=#8c0101
        机器人:textAppearance =机器人:ATTR / textAppearanceLarge
         />
        <按钮
            机器人:ID =@ + ID /关闭
            机器人:layout_width =70dp
            机器人:layout_height =70dp
            机器人:layout_gravity =中心
            机器人:背景=@绘制/ ico_exit
            安卓的onClick =退出/>        < com.academyGeneric.MyTextView
        机器人:ID =@ + ID / textView6
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:layout_gravity =中心
        机器人:文字=退出
        机器人:文字颜色=#8c0101
        机器人:textAppearance =机器人:ATTR / textAppearanceLarge
         />        < / LinearLayout中>    < / LinearLayout中>< / LinearLayout中>


解决方案

如果你真的需要它有一定的纵横比,你一定要考虑使用的权重。

如果有以线性布局父两个按钮,与两个重量体1,它们都将占用结果
1/2屏幕的宽度

按钮相对比例筛选=(所有视图view_weight /(total_weights)

在这里看看: http://blog.stylingandroid.com/archives/297

否则,DP是正确的。

I am using eclipse I have views with images and buttons with their width and height set in dp:

<Button
    android:id="@+id/btn_menu_games"
    android:layout_width="70dp"
    android:layout_height="70dp"
    android:layout_gravity="center"
    android:background="@drawable/ico_games"
    android:onClick="goToGames" />

But when I use a different device the images and buttons do not scale relative to the screen, so they are really big on a small screen and really small on a big screen. Am I doing something wrong in the view? Do I need to set anything in the Manifest?

Thanks.

Full code:

   <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg_portrait"
    android:gravity="center_horizontal"
    android:orientation="vertical" >


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="234dp"
        android:layout_height="156dp"
        android:layout_marginBottom="15dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/flag" />


    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        >

        <LinearLayout
            android:id="@+id/linearLayout2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_marginRight="20dp" >




                <Button
                    android:id="@+id/btn_menu_games"
                    android:layout_width="70dp"
                    android:layout_height="70dp"
                    android:layout_gravity="center"
                    android:background="@drawable/ico_games"
                    android:onClick="goToGames" />




        <com.academyGeneric.MyTextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:textColor="#8c0101"
            android:text="Games"
            android:layout_marginBottom="5dp"
            android:textAppearance="?android:attr/textAppearanceLarge" />


        <Button
            android:id="@+id/btn_menu_lessons"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center"
            android:background="@drawable/ico_lessons" />


       <com.academyGeneric.MyTextView
           android:id="@+id/textView2"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
           android:text="Lessons"
           android:layout_marginBottom="5dp"
           android:textColor="#8c0101"
           android:textAppearance="?android:attr/textAppearanceLarge" />


          <Button
              android:id="@+id/btn_menu_settings"
              android:layout_width="70dp"
              android:layout_height="70dp"
              android:layout_gravity="center"
              android:background="@drawable/ico_settings"
              android:onClick="goToSettings" />

        <com.academyGeneric.MyTextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Settings"
            android:textColor="#8c0101"
            android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>


<LinearLayout
     android:id="@+id/linearLayout2"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="vertical"
     android:layout_marginLeft="20dp" >



            <Button
                android:id="@+id/btn_menu_dictionary"
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:layout_gravity="center"
                android:background="@drawable/ico_dictionary"
                android:onClick="goToDictionary" />


        <com.academyGeneric.MyTextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="Dictionary"
            android:layout_marginBottom="5dp"
            android:textColor="#8c0101"
            android:textAppearance="?android:attr/textAppearanceLarge" />


        <Button
            android:id="@+id/btn_menu_statistics"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center"
            android:background="@drawable/ico_stats" />

        <com.academyGeneric.MyTextView
        android:id="@+id/textView5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Statistics"
        android:layout_marginBottom="5dp"
        android:textColor="#8c0101"
        android:textAppearance="?android:attr/textAppearanceLarge"
         />


        <Button
            android:id="@+id/close"
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center"
            android:background="@drawable/ico_exit"
            android:onClick="exit" />

        <com.academyGeneric.MyTextView
        android:id="@+id/textView6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Exit"
        android:textColor="#8c0101"
        android:textAppearance="?android:attr/textAppearanceLarge"
         />

        </LinearLayout>            

    </LinearLayout>

</LinearLayout>

解决方案

If you really need it to have a certain aspect ratio, you should definitely consider using weights.

If there are two buttons in a linear layout parent, with both weight 1, they will both take up
1/2 the width of the screen

proportion of button relative to screen = (view_weight/(total_weights of all views)

Take a look here: http://blog.stylingandroid.com/archives/297

Otherwise, DP is correct.

这篇关于Android的看法不结垢不同大小的设备的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆