web-dev-qa-db-ja.com

丸い角Android画像ボタン

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>

基本的に、出力はImageButtonですが、角が四角いため、角を丸めようとしています。

ありがとう

24
CBreeze

Shape in Androidを使用して角を丸くする

roundcorner.xmlという名前の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>

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" />
53
Nambi

シェイプドロウアブルで作られたセレクターを背景として使用できます。

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>

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>

次に、レイアウトでそれを参照します。

<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" />
9
2Dee

/ res/drawable内にimage_rounded_corner.xmlを作成します

<?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>

Android:backgroundを使用してimage_rounded_corner.xmlファイルを呼び出します

<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" /> 

Draw 9-patch 」ファイルを使用して、「Artoo Detoo」の提案に従ってください。

5
Jorgesys

これを使用:これをres/drawableフォルダーに入れます

my_gradient.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <corners Android:radius="100dp" />

    <stroke
        Android:width="5dp"
        Android:color="#090" />

</shape>

ImageButtonに以下を入力します。

Android:background="@drawable/my_gradient"
4
Sagar Shah
 public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) {
    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(output);
    final int color = 0xff424242;
    final Paint paint = new Paint();
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
    final RectF rectF = new RectF(rect);
    final float roundPx = pixels;
    Paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    Paint.setColor(color);
    canvas.drawRoundRect(rectF, roundPx, roundPx, Paint);
    Paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, Paint);
    return output;
  }

このコードは役立ちます。(中国語の記事から: http://www.cnblogs.com/liuweiming/archive/2012/04/23/2466074.html

0
user3682351