android自定義seekBar
Android中自定義SeekBar的背景顏色,進度條顏色,以及滑塊的圖片
本文引用地址:http://www.ex-cimer.com/article/201609/305005.htm在Android中的控件種類已經足夠我們使用,但是有時候大家需要根據(jù)美工的設計來改變一些控件的顏色,式樣,以及背景圖片
最近正好有這方面的需要,用了很久時間,找到了改變基本顏色以及圖片的方法。
下面以SeekBar為例,為大家描述一下我的做法
首先在layout文件夾中的main.xml內容如下
android:layout_height=fill_parent
android:layout_height=wrap_content android:max=100
android:progress=50 android:progressDrawable=@drawable/seekbar_img
android:thumb=@drawable/thumb />
很簡單,只有一個SeekBar控件,注意它的 android:progressDrawable=@drawable/seekbar_img
以及 android:thumb=@drawable/thumb
它們分別對應的是進度條的圖片以及拖動滑塊的圖片,這里的圖片也可以是我們自定義的drawable中的xml文件,可以理解成這兩個屬性應該如何顯示的意思,而 @drawable/seekbar_img和@drawable/thumb它們分別對應著 drawable 文件夾中的文件seekbar_img.xml和thumb.xml,它們表示著如何去顯示進度條與滑塊
第一步:定義Activity
在main.xml文件中加上一個SeekBar和一個TextView
android:orientation=vertical
android:layout_width=fill_parent
android:layout_height=fill_parent
>
android:id=@+id/seekbar
android:layout_width=fill_parent
android:layout_height=wrap_content
android:progressDrawable=@drawable/seekbar_img
android:thumb=@drawable/thumb
>
android:id=@+id/edit
android:layout_width=fill_parent
android:layout_height=wrap_content
>
第二步:編寫Activity
package com.gufengxiachen.counter;
import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
public class CounterActivity extends Activity {
//定義一個SeekBar和一個TextView
private SeekBar seekBar;
private TextView textView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//根據(jù)ID值取得SeekBar對象
seekBar = (SeekBar)findViewById(R.id.seekbar);
seekBar.setMax(100);
//為SeekBar設置監(jiān)聽器(這里使用匿名內部類)
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
//復寫OnSeeBarChangeListener的三個方法
//第一個時OnStartTrackingTouch,在進度開始改變時執(zhí)行
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
//第二個方法onProgressChanged是當進度發(fā)生改變時執(zhí)行
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
textView = (TextView)findViewById(R.id.edit);
int i= seekBar.getProgress();
textView.setText(+i);
}
//第三個是onStopTrackingTouch,在停止拖動時執(zhí)行
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
textView = (TextView)findViewById(R.id.edit);
int i= seekBar.getProgress();
textView.setText(+i);
}
});
}
}
評論