Button的圆角

时间:2013-03-02 22:48:09

标签: android button

基本上,从我注意到的是,当你向按钮添加背景颜色时,圆角元素会消失,所以基本上没有圆角。但是当我没有背景颜色时,按钮的角是圆的。

我不明白发生了什么事。 请帮忙

3 个答案:

答案 0 :(得分:2)

边框是默认背景drawable的一部分,因此如果这是您想要的,您还必须将其替换为包含边框的边框。 获取默认背景资源并对其进行编辑以获得一些颜色。 或者你可以使用

    button = (Button) findViewById(R.id.button);
    button.getBackground().setColorFilter(color, Mode.SRC_ATOP);

或许可以提供更接近你期望的东西。

答案 1 :(得分:1)

    <?xml version="1.0" encoding="utf-8"?>
        <selector xmlns:android="http://schemas.android.com/apk/res/android" >
                <item android:state_enabled="false">
                    <shape xmlns:android="http://schemas.android.com/apk/res/android"
                        android:padding="10dp" android:shape="rectangle">
                        <solid android:color="#FFb888"/>
                        <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/>
                    </shape>            
                </item>

                <item android:state_enabled="true" android:state_pressed="true">
                    <shape xmlns:android="http://schemas.android.com/apk/res/android"
                        android:padding="10dp" android:shape="rectangle">
                        <solid android:color="#FFD488"/>
                        <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/>
                    </shape>            
                </item>

                <item android:state_enabled="true">
                    <shape xmlns:android="http://schemas.android.com/apk/res/android"
                        android:padding="10dp" android:shape="rectangle">
                        <solid android:color="#FF8C00"/>
                        <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp"    android:topRightRadius="15dp"/>
                    </shape>            
                </item>
        </selector>

    <Button
    android:id="@+id/btn_add_list"
    android:layout_width="125dp"
    android:layout_height="wrap_content"
    android:background="@drawable/rounded_orange_button"
    android:text="@string/action_new_list"
    android:textColor="@color/white"
    android:gravity="center"
    android:textSize="18sp"
    android:layout_marginTop="20dp"
    android:layout_marginRight="10dp"
    android:layout_alignParentRight="true"               
    android:onClick="doNewList"/>

您可以将上述xml文件保存在res / drawable文件夹中名为rounded_orange_button.xml的文件中,该文件将作为按钮的背景。所以它将是res / drawable / rounded_orange_button.xml。这也会在用户选择按钮时向用户提供反馈,请遵循developer.android.com中的dsign指南,但这是您的偏好。有一百万种皮肤猫的方法。然后通过第二个示例引用您在your_layout.xml文件中的drawable文件夹中创建的内容。颜色值是可选的,如果需要,也可以从res / values / colors.xml中的另一个资源文件设置。对于要在按钮内显示的任何字符串,请使用res / values / strings.xml。希望这可以帮助。此外,可以通过使用

中的半径值来调整按钮上的曲线量

答案 2 :(得分:0)

按钮的背景将为您提供方角。对于一个不错的自定义背景,我建议制作一个背景图像,并使用按钮的背景或src。所以你的xml看起来像是:

android:src="@drawable/mybuttonimage"
android:bacgkround="@null"

android:background="@drawable/mybuttonimage"

我会测试两者,因为它们可以不同地拉伸你的图像。

另一种选择是在res / drawable文件夹中创建一个形状。

<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#33DDFF" />
        <corners android:radius="4dp" />
    </shape>