Android的看法不结垢不同大小的设备 [英] Android views not scaling on different sized devices
问题描述
我使用的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:机器人=http://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 =:/>中的Android 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 =:/>中的Android 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 =:/>中的Android 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 =:/>中的Android 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屋!