Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android 自定義控件——(四)圓形進度條,android進度條

android 自定義控件——(四)圓形進度條,android進度條

編輯:關於android開發

android 自定義控件——(四)圓形進度條,android進度條


----------------------------------↓↓圓形進度條(源代碼下有屬性解釋)↓↓-----------------------------------------------------

 

 

 

一、shape 樣式:(在drawable新建--》new--》Drawable resource file 並把原父級標簽selector改為shape )


<?xml version="1.0" encoding="utf-8"?>
<!--把shape嵌套在rotate裡面實現環形旋轉-->
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="1080.0"
>
<shape
android:innerRadiusRatio="3"
android:shape="ring"
android:thicknessRatio="9"
android:useLevel="false">
<gradient
android:startColor="#ffffff"
android:endColor="#4ec5ff"
android:type="sweep" />
</shape>
</rotate>

二、style 樣式:
<style name="ring">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:indeterminateDrawable">@drawable/buttonringstyle</item>
</style>

三、Button控件調用style樣式:
<?xml version="1.0" encoding="utf-8"?>
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.ly.blogtest.MainActivity">
<ProgressBar
style="@style/ring"
android:id="@+id/progressBar"
/>

</RelativeLayout>

----------------------------------↑↑↑↑圓形進度條↑↑↑↑↑-----------------------------------------------------

 

----------------------------------↓↓↓android:shape屬性指定形狀↓↓↓------------------------------

  • rectangle: 矩形,默認的形狀,可以畫出直角矩形、圓角矩形、弧形等
  • oval: 橢圓形,用得比較多的是畫正圓
  • line: 線形,可以畫實線和虛線
  • ring: 環形,可以畫環形進度條

----------------------------------↑↑↑android:shape屬性指定形狀↑↑↑------------------------------

 

----------------------------------↓↓↓只適用於ring的特殊屬性↓↓----------------------------------

  注:shape中有一些特殊屬性只適用於ring:

  • android:innerRadius 內環的半徑
  • android:innerRadiusRatio 浮點型,以環的寬度比率來表示內環的半徑,默認為3,表示內環半徑為環的寬度除以3,該值會被android:innerRadius覆蓋
  • android:thickness 環的厚度
  • android:thicknessRatio 浮點型,以環的寬度比率來表示環的厚度,默認為9,表示環的厚度為環的寬度除以9,該值會被android:thickness覆蓋
  • android:useLevel 一般為false,否則可能環形無法顯示,只有作為LevelListDrawable使用時才設為true

----------------------------------↑↑↑只適用於ring的特殊屬性↑↑↑----------------------------------

 

----------------------------------↓↓shape的屬性標簽↓↓-----------------------------------------

  <shape>
            <!-- 實心 -->
            <solid android:color="#ff9d77"/>
            <!-- 漸變 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />
            <!-- 描邊 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <!-- 圓角 -->
            <corners
                android:radius="2dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>

 

 

 

  • solid: 設置形狀填充的顏色,只有android:color一個屬性

    • android:color 填充的顏色
  • padding: 設置內容與形狀邊界的內間距,可分別設置左右上下的距離

    • android:left 左內間距
    • android:right 右內間距
    • android:top 上內間距
    • android:bottom 下內間距
  • gradient: 設置形狀的漸變顏色,可以是線性漸變、輻射漸變、掃描性漸變

    • android:type 漸變的類型
      • linear 線性漸變,默認的漸變類型
      • radial 放射漸變,設置該項時,android:gradientRadius也必須設置
      • sweep 掃描性漸變
    • android:startColor 漸變開始的顏色
    • android:endColor 漸變結束的顏色
    • android:centerColor 漸變中間的顏色
    • android:angle 漸變的角度,線性漸變時才有效,必須是45的倍數,0表示從左到右,90表示從下到上
    • android:centerX 漸變中心的相對X坐標,放射漸變時才有效,在0.0到1.0之間,默認為0.5,表示在正中間
    • android:centerY 漸變中心的相對X坐標,放射漸變時才有效,在0.0到1.0之間,默認為0.5,表示在正中間
    • android:gradientRadius 漸變的半徑,只有漸變類型為radial時才使用
    • android:useLevel 如果為true,則可在LevelListDrawable中使用
  • corners: 設置圓角,只適用於rectangle類型,可分別設置四個角不同半徑的圓角,當設置的圓角半徑很大時,比如200dp,就可變成弧形邊了

    • android:radius 圓角半徑,會被下面每個特定的圓角屬性重寫
    • android:topLeftRadius 左上角的半徑
    • android:topRightRadius 右上角的半徑
    • android:bottomLeftRadius 左下角的半徑
    • android:bottomRightRadius 右下角的半徑
  • stroke: 設置描邊,可描成實線或虛線。

    • android:color 描邊的顏色
    • android:width 描邊的寬度
    • android:dashWidth 設置虛線時的橫線長度
    • android:dashGap 設置虛線時的橫線之間的距離

 

----------------------------------↑↑shape的屬性標簽↑↑-----------------------------------------

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved