【android基礎知識】【android_shape學習】

該博客項目來源及參考文檔:http://blog.csdn.net/bear_huangzhen/article/details/24488337java

首先看一下結果:android

MainActivity.javaapp

package com.example.shapedemo;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
}

 

那麼首先來看activity_main.xmlide

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/button"
        android:text="TestShapeButtondfasfafasdfas" />

</RelativeLayout>

Button試用了selector button.xmlspa

button.xml文件以下:.net

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

    <item android:drawable="@drawable/button_pressed_bg" android:state_pressed="true"></item>
    <item android:drawable="@drawable/button_bg"></item>

</selector>

兩種狀態爲 button_pressed_bg.xml和button_bg.xml文件。3d

button_pressed_bg.xml文件中試用了shape,以下:code

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

    <!-- 漸變 -->
    <gradient
        android:endColor="#FFFFFF"
        android:gradientRadius="50"
        android:startColor="#ff8c00"
        android:type="radial" />
    
    <!-- 描邊 -->
    <stroke
        android:dashGap="3dp"
        android:dashWidth="5dp"
        android:width="2dp"
        android:color="#dcdcdc" />
    
    <!-- 圓角 -->
    <corners android:radius="5dp" />
    
    <!-- 間隔  -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />

</shape>

button_bg.xml文件以下:xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <!-- 填充 -->
    <solid android:color="#ff9d77" /> <!-- 定義填充的顏色值 -->
    
    <!-- 描邊 -->
    <stroke
        android:width="2dp"    
        android:color="#fad3cf" /> <!-- 定義描邊的寬度和描邊的顏色值 -->
    
    <!-- 圓角 -->
    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" /> <!-- 設置四個角的半徑 -->
    
      <!-- 間隔 -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" /> <!-- 設置各個方向的間隔 -->

</shape>

 

 

例子看完了來看一下shape的屬性:blog

"

在Android程序開發中,咱們常常會去用到Shape這個東西去定義各類各樣的形狀,首先咱們瞭解一下Shape下面有哪些標籤,都表明什麼意思:

solid:填充
android:color指定填充的顏色

 

gradient:漸變
android:startColor和android:endColor分別爲起始和結束顏色,

android:angle是漸變角度,必須爲45的整數倍。
另外漸變默認的模式爲android:type="linear",即線性漸變,

能夠指定漸變爲徑向漸變,android:type="radial",徑向漸變須要指定半徑android:gradientRadius="50"。

angle值對應的位置如圖:

 

 

stroke:描邊
android:width="2dp" 描邊的寬度,android:color 描邊的顏色。
咱們還能夠把描邊弄成虛線的形式,設置方式爲:
android:dashWidth="5dp" 
android:dashGap="3dp"
其中android:dashWidth表示'-'這樣一個橫線的寬度,android:dashGap表示之間隔開的距離

 

corners:圓角
android:radius爲角的弧度,值越大角越圓。
咱們還能夠把四個角設定成不一樣的角度,

同時設置五個屬性,則Radius屬性無效

android:Radius="20dp"                           設置四個角的半徑

android:topLeftRadius="20dp"              設置左上角的半徑 
android:topRightRadius="20dp"           設置右上角的半徑 
android:bottomLeftRadius="20dp"      設置右下角的半徑 
android:bottomRightRadius="20dp"    設置左下角的半徑

 

padding:間隔
能夠設置上下左右四個方向的間隔

"

 

這裏須要說明的是:間隔是指內部填充內容到四周的間隔。

相關文章
相關標籤/搜索