SeekBar 粗略小节

滑片控件,图像主要由4个部分组成 background、progessDrawable、secondProgressDrawable以及thumb
基本属性在.xml文件中可以定义

<SeekBar android:id="@+id/seek"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="100"
android:progress="50"
android:secondaryProgress="75" />


在.java中 可以通过通过以下函数进行需要的操作
 mSeekBar = (SeekBar)findViewById(R.id.seek);
mSeekBar.setOnSeekBarChangeListener(this);
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) { //当thumb移动时
}

public void onStartTrackingTouch(SeekBar seekBar) { //当thumb刚开始移动
}

public void onStopTrackingTouch(SeekBar seekBar) { //当thumb结束移动
mTrackingText.setText(getString(R.string.seekbar_tracking_off));
}


当自定义图片文件时可以通过.xml文件进行设置
 android:thumb="@drawable/thumb"
android:progressDrawable="@drawable/progress"


在@drawable/thumb.xml中,设置thumb在不同状态下加载的图片或是不同状态唯一图片,则不需写新建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_pressed"/>
<item
android:state_focused="false"
android:state_pressed="false"
android:drawable="@drawable/thumb_normal"/>
</selector>

在@drawable/progressDrawable.xml中,设置background以及progress图像

 <?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="5dip" />
<gradient
android:startColor="#ff9d9e9d"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:angle="270"
/>
</shape>
</item>

<item android:id="@android:id/secondaryProgress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#80ffd300"
android:centerColor="#80ffb600"
android:centerY="0.75"
android:endColor="#a0ffcb00"
android:angle="270"
/>
</shape>
</clip>
</item>

<item android:id="@android:id/progress">
<clip>
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ffffd300"
android:centerColor="#ffffb600"
android:centerY="0.75"
android:endColor="#ffffcb00"
android:angle="270"
/>
</shape>
</clip>
</item>

</layer-list>

android:drawable="@drawable/progress_mediumbacon" 也可以通过简单加载图片的方式

过程中有一些小的问题:
1.加载.9文件 <nine-patch android:src="@drawable/progress"/>
2.自定子图像时,调整progress的高度时 thumb无法中心对齐,高度通过设置最大最小高度来调整

<SeekBar android:maxHeight = "5dip"
android:minHight="5dip"

3.加载thumb图片过大,在移动到最左端或是最右端时,可能出现被切效果,需要通过设置thumbOffset来调节

<SeekBar android:thumbOffset ="7dip"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值