圆角android图像按钮

CBr*_*eze 26 android imagebutton

我试图在Android ImageButton上圆角,代码看起来像这样;

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <ImageButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageButton"
            android:layout_marginTop="57dp"
            android:src="@drawable/friends"
            android:padding="1dp"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@+id/imageButton2"
            android:layout_marginRight="62dp" />

    </RelativeLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

基本上我们的输出是一个ImageButton,但它有方角,我们试图圆角.

谢谢

Nam*_*mbi 55

在android中使用Shape来制作圆角

创建名为它的xml文件 roundcorner.xml

<?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>
Run Code Online (Sandbox Code Playgroud)

在ImageButton中添加此属性 android:background="@drawable/roundcorner"

<ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/imageButton"
                android:layout_marginTop="57dp"
                android:src="@drawable/friends"
                android:background="@drawable/roundcorner"
                android:padding="1dp"
                android:layout_alignParentTop="true"
                android:layout_toLeftOf="@+id/imageButton2"
                android:layout_marginRight="62dp" />
Run Code Online (Sandbox Code Playgroud)

  • 这只是使背景四舍五入,而不是按钮本身的图像..... (16认同)

2De*_*Dee 10

您可以使用由形状drawables制成的选择器作为背景,例如:

rounded_bg.xml(在res/drawable-nodpi文件夹中创建)

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="#ffffff" />
    <corners
        android:bottomLeftRadius="4dp"
        android:bottomRightRadius="4dp"
        android:topLeftRadius="4dp"
        android:topRightRadius="4dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

创建另一个,更改引用的颜色solid android:color="#ffffff",例如更改solid android:color="#ff0000"并命名该文件rounded_bg_selected.xml

创建选择器(也在res/drawable-nodpi中),命名为selectable_button_bg.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:drawable="@drawable/rounded_bg_selected" />
    <item  android:state_focused="false" 
        android:drawable="@drawable/rounded_bg" />
</selector>
Run Code Online (Sandbox Code Playgroud)

然后在你的布局中引用它:

<ImageButton
     android:background="@drawable/selectable_button_bg"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:id="@+id/imageButton"
     android:layout_marginTop="57dp"
     android:src="@drawable/friends"
     android:padding="1dp"
     android:layout_alignParentTop="true"
     android:layout_toLeftOf="@+id/imageButton2"
     android:layout_marginRight="62dp" />
Run Code Online (Sandbox Code Playgroud)


Jor*_*sys 6

image_rounded_corner.xml在里面创建/ res/drawable

<?xml version="1.0" encoding="UTF-8" ?> 
  <shape xmlns:android="http://schemas.android.com/apk/res/android">
  <solid android:color="#000000" /> 
  <stroke android:width="3dp" android:color="#776da8" /> 
  <corners android:bottomRightRadius="5dp" android:bottomLeftRadius="5dp" android:topLeftRadius="5dp" android:topRightRadius="5dp" /> 
  <padding android:left="2dp" android:top="2dp" android:right="2dp" android:bottom="2dp" /> 
  </shape>
Run Code Online (Sandbox Code Playgroud)

使用调用image_rounded_corner.xml文件 android:background

<ImageView android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:id="@+id/myimage" 
           android:src="@drawable/icon"
           android:background="@drawable/image_rounded_corner" /> 
Run Code Online (Sandbox Code Playgroud)

或使用Draw 9-patch文件作为"Artoo Detoo"建议.