/** * 主頁面
*@author 有點涼了
* */
public
class
mainactivity
extends
activity catch (interruptedexception e) }}
}).start();
}@override
public
boolean
oncreateoptionsmenu(menu menu)
@override
public
boolean
onoptionsitemselected(menuitem item)
return
super.onoptionsitemselected(item);}}
自定義頁面
package com.qiao.circleprogress_forexample;
import android.content.context;
import android.content.res.typedarray;
import android.graphics.canvas;
import android.graphics.color;
import android.graphics.paint;
import android.graphics.rectf;
import android.graphics.typeface;
import android.util.attributeset;
import android.util.log;
import android.view.view;
/** *@author 有點涼了
* */
public
class
roundprogressbar
extends
view
public
roundprogressbar(context context, attributeset attrs)
public
roundprogressbar(context context, attributeset attrs, int defstyle)
@override
protected
void
ondraw(canvas canvas)
/*** 畫圓弧 ,畫圓環的進度
*///設定進度是實心還是空心
paint.setstrokewidth(roundwidth); //設定圓環的寬度
paint.setcolor(roundprogresscolor); //設定進度的顏色
rectf oval = new rectf(centre - radius, centre - radius, centre
+ radius, centre + radius); //用於定義的圓弧的形狀和大小的界限
switch (style)
case fill:}}
public
synchronized
intgetmax()
/*** 設定進度的最大值
*@param max
*/public
synchronized
void
setmax(int max)
this.max = max;
}/**
* 獲取進度.需要同步
*@return
*/public
synchronized
intgetprogress()
/*** 設定進度,此為執行緒安全控制項,由於考慮多線的問題,需要同步
* 重新整理介面呼叫postinvalidate()能在非ui執行緒重新整理
*@param progress
*/public
synchronized
void
setprogress(int progress)
if(progress > max)
if(progress <= max)
}public
intgetcriclecolor()
public
void
setcriclecolor(int criclecolor)
public
intgetcricleprogresscolor()
public
void
setcricleprogresscolor(int cricleprogresscolor)
public
intgettextcolor()
public
void
settextcolor(int textcolor)
public
float
gettextsize()
public
void
settextsize(float textsize)
public
float
getroundwidth()
public
void
setroundwidth(float roundwidth)
}
布局:
""
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
.qiao
.circleprogress_forexample.roundprogressbar
android:id="@+id/progressbar1"
android:layout_width="100dip"
android:layout_height="100dip"
/>
屬性
<?xml version="1.0" encoding="utf-8"?>
name="roundprogressbar">
name="roundcolor"
format="color"/>
name="roundprogresscolor"
format="color"/>
name="roundwidth"
format="dimension">
attr>
name="textcolor"
format="color" />
name="textsize"
format="dimension" />
name="max"
format="integer">
attr>
name="textisdisplayable"
format="boolean">
attr>
name="style">
name="stroke"
value="0">
enum>
name="fill"
value="1">
enum>
attr>
declare-styleable>
resources>
android 自定義 環形進度條
其實這個控制項很簡單,繼承view,在ondraw 中 繪製乙個圓和乙個圓弧即可,如下,對外暴露了乙個設定進度的方法,難點主要是數學計算 public class circleview extends view private void initvalues private void init ov...
android 簡單自定義環形進度條
一 通過動畫實現 定義res anim loading.xml如下 html view plain copy print?xml version 1.0 encoding utf 8 animation list android oneshot false xmlns android item an...
Android自定義進度條
1.新建自定義view horizontalprogressbarwithprogress,2.自定義屬性 values目錄下新建attrs.xml檔案,定義各種屬性,並且給進度條引用 3.定義一些預設值和單位轉換方法 private static final int default text si...