⑴ 如何自定义seekBar的样式
需求:
下载中的颜色要自定义,要替换为另外的一个颜色 方法:
就是在 在drawable中新建一个progressBar_style.xml文件, 这个属性进行设置,
有两个方案:
第一,设置两张图片:
第二种,设置背景颜色:
其中的属性还要进一步研究具体作用
⑵ android 怎么实现类似SeekBar的单向调节改成双向调节范围
网上有个重写View实现的,SeekBarPressure
以下是一个使用SeekBar来调节系统音量的实例:
XML代码:
<SeekBar
android:id="@+id/sound"
android:layout_width="150px"
android:layout_height="10px"
android:max="100" //设置拖动条最大值
android:progress="10" //设置拖动条当前值
android:progressDrawable="@layout/seekbar_style" //拖动条样式
android:thumb="@layout/thumb" /> //滑块样式
seekbar_style.xml:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="10dip" />
<gradient android:startColor="#ffffffff"
android:centerColor="#ff000000" android:endColor="#ff808A87"
android:centerY="1" android:angle="270" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="10dip" />
<gradient android:startColor="#ffffffff"
android:centerColor="#ffFFFF00" android:endColor="#ffAABD00"
android:centerY="1" android:angle="270" />
</shape>
</clip>
</item>
</layer-list>
thumb.xml:
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下状态 -->
<item
android:state_pressed="true"
android:drawable="@drawable/thumb_normal"
/>
<!-- 普通无焦点状态 -->
<item
android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/thumb_normal"
/>
</selector>
bacon_seekbar.xml:
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android"
>
<item
android:id="@+android:id/background"
android:drawable="@drawable/thumb_normal" />
<item
android:id="@+android:id/SecondaryProgress"
android:drawable="@drawable/thumb_normal" />
<item
android:id="@+android:id/progress"
android:drawable="@drawable/thumb_normal" />
</layer-list>
JAVA代码:
public class PianoActivity extends Activity {
/** Called when the activity is first created. */
private ImageButton imageButton_white1;
private MediaPlayer mediaPlayer01;
public AudioManager audiomanage;
private TextView mVolume ; //显示当前音量
public SeekBar soundBar;
private int maxVolume, currentVolume;
private int volume=0; //初始化声音
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mediaPlayer01 = new MediaPlayer();
imageButton_white1=(ImageButton)findViewById(R.id.white1);
final SeekBar soundBar=(SeekBar)findViewById(R.id.sound); //音量设置
mVolume = (TextView)findViewById(R.id.mVolume);
audiomanage = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
maxVolume = audiomanage.getStreamMaxVolume(AudioManager.STREAM_MUSIC); //获取系统最大音量
soundBar.setMax(maxVolume); //拖动条最高值与系统最大声匹配
currentVolume = audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC); //获取当前值
soundBar.setProgress(currentVolume);
mVolume.setText(currentVolume*100/maxVolume + " %");
soundBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() //调音监听器
{
public void onProgressChanged(SeekBar arg0,int progress,boolean fromUser)
{
audiomanage.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
currentVolume = audiomanage.getStreamVolume(AudioManager.STREAM_MUSIC); //获取当前值
soundBar.setProgress(currentVolume);
mVolume.setText(currentVolume*100/maxVolume + " %");
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
});
TextView的XML没有给出,需要自己添加。
⑶ 如何给Android的SeekBar设置最小值为10
seekbar默认的最小值是0,可是现实中许多的时候最小值,却不是0,所以需要自定下。
一个取巧的办法就是,在重写的方法中,修改进度值:
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
//设置最小的范围值是: 10
if (seekBar == rangeSB) {
rangtxt.setText((progress+10) + "");
}
}
⑷ 安卓开发中 滑动条(seekbar)控件显示异常,是不是我的开发环境有问题,能设置吗图如下:
你的seekbar高度设置为wrap_content试一下。
holo的seekbar主题有点不一样。
开什么国际玩笑。只有相对布局才能用??我做这个好几个月了,没有上百次用这个控件也有几十次了。我都没有发现还有这个隐藏功能
⑸ 怎么在android preferences中添加seekbar控件
SeekBar是ProgressBar的扩展,在其基础上增加了一个可拖动的thumb(注:就是那个可拖动的图标)。用户可以触摸thumb并向左或向右拖动,再或者可以使用方向键都可以设置当前的进度等级。不建议把可以获取焦点的widget放在SeekBar的左边或右边。SeekBar的setProgress是对Seekbar进行进度设置的方法,通过使用seekbar.setProgress(0),可以设置成 seekbar的最小值
⑹ android 带节点的seekbar怎么搞
sdk里面没有提供设置成垂直的方法 要自己去实现 查看原帖>>
⑺ Android开发中SeekBar的值改变后,系统如何得到其改变后的值
SeekBar是ProgressBar的扩展,在其基础上增加了一个可拖动的thumb(注:就是那个可拖动的图标)。用户可以触摸thumb并向左或向右拖动,再或者可以使用方向键都可以设置当前的进度等级。不建议把可以获取焦点的widget放在SeekBar的左边或右边。
SeekBar的setProgress是对Seekbar进行进度设置的方法,
通过使用seekbar.setProgress(叮笭耻蝗侪豪抽通处坤0),可以设置成 seekbar的最小值
⑻ Android开发如何更改SeekBar式样
改变seekbar上的按钮通过设置android:thumb属性
改变seekbar的那个条设置android:progressDrawable属性
示例
按钮图片
<shape>
<solidandroid:color="@android:color/black"/>
<sizeandroid:width="2dp"android:height="10dp"/>
</shape>
进度条图片
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<layer-list>
<itemandroid:id="@android:id/background">
<shape>
<gradient
android:startColor="#1DDA0B"
android:centerColor="#F5DA0B"
android:endColor="#D10000"
android:centerX="0.2"/>
</shape>
</item>
</layer-list>
</item>
</selector>
给seekbar设置属性
<SeekBar
android:id="@+id/seek_aqi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_aqi_text"
android:padding="0dp"
android:thumb="@drawable/seek_aqi_thumb"
android:progressDrawable="@drawable/seek_aqi_bg"
android:max="500"
android:maxHeight="5dp"
android:minHeight="5dp"
android:progress="70"/>
效果
⑼ android 水平seekbar怎么设置颜色
多重叠几个div就可以了哇。4个div,一个容器div(背景白色),然后内部有三个放在一行的div,控制各自的宽度和背景色,就能实现三个颜色了。更多颜色同样的道理也能实现!
⑽ android seekbar怎么调触控范围
//mCurrentView 是Seekbar的父亲
private void enlargeSeekBar(){
mCurrentView.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
Rect seekRect = new Rect();
mSeekBar.getHitRect(seekRect);
if((event.getY() >= (seekRect.top-50)) && (event.getY()<= (seekRect.bottom+50))){
float y = seekRect.top + seekRect.height()/2;
//seekBar only accept relative x
float x = event.getX()-seekRect.left;
if(x <0) {
x=0;
}
else if(x > seekRect.width()) {
x= seekRect.width();
}
MotionEvent me = MotionEvent.obtain(event.getDownTime(), event.getEventTime(),
event.getAction(), x, y, event.getMetaState());
return mSeekBar.onTouchEvent(me);
}
return false;
}
});
}