編輯:初級開發
public class GraphableButton extends Button { //從Button類繼承
private static final String TAG = "GraphableButton";
static Paint[] sPaint = new Paint[2]; //定義兩種顏色
static {
sPaint[0] = new Paint();
sPaint[0].setStyle(Paint.Style.FILL);
sPaint[0].setColor(0xFF0080FF);
sPaint[1] = new Paint();
sPaint[1].setStyle(Paint.Style.FILL);
sPaint[1].setColor(0xFFFF6060);
}
double[] mValues;
public GraphableButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void setValues(double[] values, double maxValue) { //設置顯示范圍,下文提到
mValues = values.clone();
for (int i = 0; i < values.length; i++) {
mValues[i] /= maxValue;
}
}
@Override
public void onDraw(Canvas canvas) { //重寫onDraw直接繪制
Log.i(TAG, "onDraw: w = " + getWidth() + ", h = " + getHeight());
int xmin = getPaddingLeft();
int xmax = getWidth() - getPaddingRight();
int ymin = getPaddingTop();
int ymax = getHeight() - getPaddingBottom();
int startx = xmin;
for (int i = 0; i < mValues.length; i++) {
int endx = xmin + (int) (mValues[i] * (xmax - xmin));
canvas.drawRect(startx, ymin, endx, ymax, sPaint[i]); //通過canvas繪制范圍
// 該方法原型 drawRect(float left, float top, float right, float bottom, Paint paint)
startx = endx;
}
super.onDraw(canvas);
}
}
調用方法很簡單,和普通的Button沒有什麼區別,這裡我們僅僅多定義了setValues方法,android開發網提醒網喲注意布局文件XML中如何定義,在最下文
private GraphableButton mButtons;
mButtons = (GraphableButton) findVIEwById(R.id.button0);
mButtons.setOnClickListener(this); //設置一個按下事件監聽
mButtons.setVisibility(VIEw.INVISIBLE); //設置當前按鈕不可見
mButtons.setText("android123.com歡迎您");
mButtons.setValues(0,100);
mButtons.setVisibility(VIEw.VISIBLE); //設置按鈕可見
下面在layout.XML中如何寫呢,這裡要寫上自己程序完整的package name才能正確被adt識別,相關的具體定義如下:
<com.android123.cwjTest.GraphableButton
android:id="@+id/button7"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:layout_weight="1" />
1.android模擬器采用的是開源工程Qemu,Qemu是Linux 下的著名模擬器2. kernel-qemu是內核鏡像3. ramdisk.img是文件系統,如果
最近幾天由於項目的需要研究了一下listVIEw的滑動數據動態的更新顯示,其中需要在數據加載過程有圓形進度條的顯示,遇到的問題是進度條的顏色設置,在網上查了一些資料結合
最近因為因緣際會,看了好些與創新理論相關的書籍。其中創新理論權威、哈佛大學商學院教授克裡斯汀生所著《創新者的解答》一書,我個人認為頗有意思,尤其對於開放系統與封閉系
外特性空間的Activity 我們先來看看,Android應用開發人員接觸的外特性空間中的Activity,對於AMS (activ