Android中自界说SeekBar的布景色彩,进展条色彩,以及滑块的图片
在Android中的控件品种现已满足咱们运用,可是有时候咱们需求依据美工的规划来改动一些控件的色彩,款式,以及布景图片
最近正好有这方面的需求,用了好久时刻,找到了改动根本色彩以及图片的办法。
下面以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);
//依据ID值获得SeekBar目标
seekBar = (SeekBar)findViewById(R.id.seekbar);
seekBar.setMax(100);
//为SeekBar设置监听器(这儿运用匿名内部类)
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){
//复写OnSeeBarChangeListener的三个办法
//第一个时OnStartTrackingTouch,在进展开端改动时履行
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
//第二个办法onProgressChanged是当进展产生改动时履行
@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,在中止拖动时履行
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
textView = (TextView)findViewById(R.id.edit);
int i= seekBar.getProgress();
textView.setText(+i);
}
});
}
}