开发音乐播放器要一个拖动条显示播放位置, 系统那个拖动条大了根本不能用。
android:maxHeight="2pt"
只把那个拖动条高度改变了, 那个拖动按钮一样的东西死都不变小。 网上说可以自定义的。直接重画那个Thumb。
xml代码
可是我就不明白那个item里面的东西该如何定义。下午看了一个下午的源码
public SeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
调用
调用父类的一个构造函数 在这里面看的了
Drawable thumb = a.getDrawable(com.android.internal.R.styleable.SeekBar_thumb);
setThumb(thumb); // will guess mThumbOffset if thumb != null...
看了drawable里面的com.android.internal.R.styleable.SeekBar_thumb
文件中@drawable/seek_thumb_normal这些让我迷糊了 ,里面的文件映射到什么地方呢, 在eclipse里面找了
res里面 双击 打不开。 当时就郁闷了 明明是一个png文件怎么打不开呢 !弄了好久还以为是android系统文件 但系统目录下找到了一个system.img 文件还以为源文件在里面 捣鼓了半天打不开,网上差说rar可以打开 狗屁 是linux里面文件 晕了 差点就想把自己电脑给换系统
本想放弃了,在回到eclipse里面的时候再打开 认真看了错误原因那段英文 说叫我去源文件那边打开 在左下角看有个路径 干 android.jar
打开文件 终于找到了。就几张图片 搞了我半天
那个拉动按钮是引用这边的图片, 我马上把图片copy出来 自己直接改小
在布局文件中引用自己的图片 运行调试 ok
android:minHeight="2pt"
android:maxHeight="2pt"
只把那个拖动条高度改变了, 那个拖动按钮一样的东西死都不变小。 网上说可以自定义的。直接重画那个Thumb。
xml代码
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 按下状态-->
<item android:state_focused="true" android:state_pressed="true" >
<shape android:shape="oval">
<gradient android:type="radial" android:gradientRadius="8"
android:angle="0" android:startColor="#FFFF0000"
android:centerColor="#FF00FF00" android:endColor="#000000" />
<size android:width="16dip" android:height="100dip"></size>
</shape>
</item>
</selector>
可是我就不明白那个item里面的东西该如何定义。下午看了一个下午的源码
public SeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
调用
public AbsSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs,
com.android.internal.R.styleable.SeekBar, defStyle, 0);
Drawable thumb = a.getDrawable(com.android.internal.R.styleable.SeekBar_thumb);
setThumb(thumb); // will guess mThumbOffset if thumb != null...
// ...but allow layout to override this
int thumbOffset = a.getDimensionPixelOffset(
com.android.internal.R.styleable.SeekBar_thumbOffset, getThumbOffset());
setThumbOffset(thumbOffset);
a.recycle();
a = context.obtainStyledAttributes(attrs,
com.android.internal.R.styleable.Theme, 0, 0);
mDisabledAlpha = a.getFloat(com.android.internal.R.styleable.Theme_disabledAlpha, 0.5f);
a.recycle();
mScaledTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop();
}
调用父类的一个构造函数 在这里面看的了
Drawable thumb = a.getDrawable(com.android.internal.R.styleable.SeekBar_thumb);
setThumb(thumb); // will guess mThumbOffset if thumb != null...
看了drawable里面的com.android.internal.R.styleable.SeekBar_thumb
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_pressed" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/seek_thumb_selected" />
<item android:drawable="@drawable/seek_thumb_normal" />
</selector>
文件中@drawable/seek_thumb_normal这些让我迷糊了 ,里面的文件映射到什么地方呢, 在eclipse里面找了
res里面 双击 打不开。 当时就郁闷了 明明是一个png文件怎么打不开呢 !弄了好久还以为是android系统文件 但系统目录下找到了一个system.img 文件还以为源文件在里面 捣鼓了半天打不开,网上差说rar可以打开 狗屁 是linux里面文件 晕了 差点就想把自己电脑给换系统
本想放弃了,在回到eclipse里面的时候再打开 认真看了错误原因那段英文 说叫我去源文件那边打开 在左下角看有个路径 干 android.jar
打开文件 终于找到了。就几张图片 搞了我半天
那个拉动按钮是引用这边的图片, 我马上把图片copy出来 自己直接改小
在布局文件中引用自己的图片 运行调试 ok
<SeekBar
android:id="@+id/musicSeek"
style="@android:style/Widget.SeekBar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:thumb="@drawable/seek_thumb_pressed"
android:minHeight="2pt"
android:maxHeight="2pt"
android:paddingLeft="6pt"
android:paddingRight="6pt"
/>