Android中常常使用shape來定義控件的一些顯示屬性來美化UI;
shape的常用屬性有:
(1)solid:填充,設置填充的顏色;
(2)stroke:描邊,設置邊界的寬度、顏色等;
(3)corners:圓角,五個屬性,全部設置的話,會覆蓋;
android:radius="20dp" 設置四個角的半徑
android:topLeftRadius="20dp" 設置左上角的半徑
android:topRightRadius="20dp" 設置右上角的半徑
android:bottomLeftRadius="20dp" 設置右下角的半徑
android:bottomRightRadius="20dp" 設置左下角的半徑
(4)padding:定義內容離邊界的距離,其中的屬性類似於android:padding_left,android:padding_right;
(5)gradient:對應顏色漸變;當設置填充顏色后,無漸變效果,android:angle 是指從哪個角度開始變,angle的值必須是45的倍數(包括0),僅在type="linear"有效,不然會報錯;
(6)size:設置大小;
例如:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="@string/hello_world" android:textSize="30sp" /> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <Button android:id="@+id/roundButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:background="@layout/shape1" android:text="@string/button1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:background="@layout/shape2" android:text="@string/button1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:background="@layout/shape3" android:text="@string/button1" /> </LinearLayout> </LinearLayout>
shape1.xml:
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 填充的顏色 --> <solid android:color="#99FFFF" /> <!-- 設置按鈕的四個角為弧形 --> <corners android:radius="20dp" /> <!-- padding:Button里面的文字與Button邊界的間隔 --> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> </shape>
shape2.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 填充的顏色 --> <solid android:color="#FFCC66" /> <!-- 設置按鈕的左下角和右下角是圓形邊框 --> <corners android:bottomLeftRadius="20dp" android:bottomRightRadius="20dp" /> <!-- 描邊 --> <stroke android:width="1dp" android:color="#000000" /> <!-- padding:Button里面的文字與Button邊界的間隔 --> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> </shape>
shape3.xml
<?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 填充的顏色 --> <solid android:color="#996600" /> <!-- 設置按鈕的左上角和右上角為圓形邊框 --> <corners android:topLeftRadius="20dp" android:topRightRadius="20dp" /> <!-- padding:Button里面的文字與Button邊界的間隔 --> <padding android:bottom="10dp" android:left="10dp" android:right="10dp" android:top="10dp" /> </shape>
MainActivity.java
package com.xiaozhang.listview2; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class MainActivity extends Activity { Button roundButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); roundButton = (Button) findViewById(R.id.roundButton); roundButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { Toast.makeText(MainActivity.this, "你點擊了圓角按鈕", Toast.LENGTH_LONG) .show(); } }); } }