Android按钮不缩放

时间:2012-10-15 05:00:36

标签: android android-layout android-xml android-button

这似乎是一个非常基本的问题,但我似乎无法弄明白。我已经做了很多关于如何让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

4 个答案:

答案 0 :(得分:0)

答案 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_parentwrap_content&amp;的含义。 match_parent比100%你会得到解决方案。如果您有任何疑问,请在此处http://chat.stackoverflow.com/rooms/13436/smart-phones-developer与我联系,您可以在此问我这个问题。我建议您发布图片

由于 Aamirkhan我。