这似乎是一个非常基本的问题,但我似乎无法弄明白。我已经做了很多关于如何让android扩展到大屏幕和小屏幕的阅读。
我有一款专为平板电脑设计的应用,在那里效果很好。然而,当我正在开发移动(电话)版本时,我想确保如果有人在手机上打开它,它至少会看起来“好”。
除了按钮之外,每个人都很棒......我似乎无法按比例缩放按钮。
他们在Tab上看起来很棒......但是在手机上,他们占据了整个屏幕。
感谢您的帮助。
以下是代码:
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/main_landscape"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/main_menu_plus_landscape"
android:orientation="vertical" >
<Button
android:id="@+id/button_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_marginRight="38dp"
android:layout_marginTop="200dp"
android:background="@layout/button_main_selector"
android:padding="40dp"
android:text="@string/main_start_list"
android:textColor="@color/white"
android:textSize="30dp"
android:typeface="sans"/>
<Button
android:id="@+id/button_emulator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/adview"
android:layout_alignLeft="@+id/button_list"
android:layout_alignRight="@+id/button_list"
android:layout_marginBottom="168dp"
android:background="@layout/button_main_selector"
android:padding="40dp"
android:text="@string/main_start_emulator"
android:textColor="@color/white"
android:textSize="30dp"
android:typeface="sans" />
</RelativeLayout>
布局/ button_main_selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Button Focused-->
<item android:state_focused="true"
android:state_pressed="false"
android:drawable="@drawable/main_buttons_selected"
/>
<!-- Button Focused Pressed-->
<item android:state_focused="true"
android:state_pressed="true"
android:drawable="@drawable/main_buttons_selected"
/>
<!-- Button Pressed-->
<item android:state_focused="false"
android:state_pressed="true"
android:drawable="@drawable/main_buttons_selected"
/>
<!-- Button Default Image-->
<item android:drawable="@drawable/main_buttons"/>
</selector>
可绘制-HDPI / main_buttons.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#71bbe3"/>
<corners
android:bottomRightRadius="10dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp"/>
</shape>
我也尝试将我的按钮文件放入“可绘制”中,但它似乎没有帮助。有什么建议? (注意:我的按钮只是纯色,没有图像)
res/drawable/main_buttons.xml
res/drawable/main_buttons_selected.xml
res/drawable/button_main_selector.xml
答案 0 :(得分:0)
您可以参考:
Android: Button image drawable scalable for other screen sizes?
http://www.pixate.com/blog/2012/06/30/android/
http://www.netmagazine.com/tutorials/user-interface-design-android-apps
答案 1 :(得分:0)
根据您提供的信息,我预测问题是,您只在Hdpi中给出了按钮。因此,当您在手机中运行应用程序时,按钮将从hdpi中获取,这使得手机中的外观很奇怪。只需在drawable或ldpi中给出按钮即可解决这个问题。它适合手机屏幕。这可能是你的问题。
答案 2 :(得分:0)
你只需将你的两个xml放在drawable
在项目资源
中创建名为drawable
的文件夹
res/drawable/main_buttons.xml
res/drawable/button_main_selector.xml
答案 3 :(得分:0)
我已经看过你的代码了,首先我会告诉你,你应该发布图像,你想要有什么样的视图,你已经给出了什么样的
android:layout_marginRight="38dp"
android:layout_marginTop="200dp"
在你的第一个按钮代码中,&amp;在你的secound按钮中你给了这样的保证金
android:layout_marginBottom="168dp"
并且其他任何事情都取决于你想要实现什么样的设计的布局。
我给你的建议是永远不会给左边的方向特别留下边距。因为例如你从左边到50px给出的边距比普通设备看起来还好,而在高分辨率设备上看起来不太好,因为它需要50px在任何分辨率device.instead of margin使用这种语法android:alignParentLeft = true并且总是习惯在你的相对布局中使用这种语法。使用ssuch语法你的元素总是在你需要的位置..转到Android开发人员网站,检查线性和相对布局之间的区别是什么,线性和相对布局的不同属性是什么属性,如fill_parent
,wrap_content
&amp;的含义。 match_parent
比100%你会得到解决方案。如果您有任何疑问,请在此处http://chat.stackoverflow.com/rooms/13436/smart-phones-developer与我联系,您可以在此问我这个问题。我建议您发布图片
由于 Aamirkhan我。