标签: Android SeekBar

自定义Android SeekBar 图片 大小 等样式

系统自带的SeekBar真是太难看了,不能容忍! 只能自己做了,先来张效果图

%title插图%num

 

第1个Seekbar 背景是颜色,thumb是图片,上代码:

 

  1.     <SeekBar
  2.         android:id=“@+id/sb_detail_play_progress”
  3.         android:layout_width=“fill_parent”
  4.         android:layout_height=“wrap_content”
  5.         android:layout_centerVertical=“true”
  6.         android:layout_gravity=“center”
  7.         android:paddingLeft=“15.0dip”
  8.         android:paddingRight=“15.0dip”
  9.         android:progressDrawable=“@drawable/progress_holo_light”
  10.         android:thumb=“@drawable/detail_icon_schedule_ball” />

drawable/po_seekbar.xml:

  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <layer-list
  3. xmlns:android=“http://schemas.android.com/apk/res/android”>
  4. <item android:id=“@*android:id/background”>
  5. <shape>
  6. <solid android:color=“#ff51495e” />
  7. </shape>
  8. </item>
  9. <item android:id=“@*android:id/secondaryProgress”>
  10. <clip>
  11. <shape>
  12. <solid android:color=“#ff51495e” />
  13. </shape>
  14. </clip>
  15. </item>
  16. <item android:id=“@*android:id/progress”>
  17. <clip>
  18. <shape>
  19. <solid android:color=“#ff996dfe” />
  20. </shape>
  21. </clip>
  22. </item>
  23. </layer-list>
  1.  

drawable/seekbar_thumb.xml:

  1.  <?xml version=”1.0″ encoding=”utf-8″?>
  2. <selector
  3. xmlns:android=“http://schemas.android.com/apk/res/android”>
  4. <item android:state_focused=“true” android:state_pressed=“false” android:drawable=“@drawable/seekbar_thumb_normal” />
  5. <item android:state_focused=“true” android:state_pressed=“true” android:drawable=“@drawable/seekbar_thumb_pressed” />
  6. <item android:state_focused=“false” android:state_pressed=“true” android:drawable=“@drawable/seekbar_thumb_pressed” />
  7. <item android:drawable=“@drawable/seekbar_thumb_normal” />
  8. </selector>
  1. 改变大小
  2. 如何改变seekbar的厚度呢,是没有属性能直接修改的,得通过重新定义样式:

     

     
  3. <SeekBar
  4. android:layout_width="match_parent"
  5. android:layout_height="wrap_content"
  6. android:layout_marginTop="20dp"
  7. android:thumb="@drawable/seek"
  8. android:progressDrawable="@drawable/seek_style"
  9. />
  10.  
  11. <?xml version="1.0" encoding="utf-8"?>
  12. <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
  13. <size
  14. android:width="20dp"
  15. android:height="20dp"
  16. />
  17. <solid android:color="#60f0"/>
  18. </shape>
  19. progressDrawable 修改进度条的样式: 

     
  20. <?xml version="1.0" encoding="utf-8"?>
  21. <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  22. <item android:id="@android:id/background">
  23. <shape>
  24. <solid android:color="#999"/>
  25. </shape>
  26. </item>
  27. <item android:id="@android:id/secondaryProgress">
  28. <clip>
  29. <shape>
  30. <corners android:radius="5dip" />
  31. <gradient
  32. android:startColor="#80ffd300"
  33. android:centerColor="#80ffb600"
  34. android:centerY="0.75"
  35. android:endColor="#a0ffcb00"
  36. android:angle="270"
  37. />
  38. </shape>
  39. </clip>
  40. </item>
  41. <item android:id="@android:id/progress">
  42. <clip>
  43. <shape>
  44. <solid android:color="#600f"/>
  45. </shape>
  46. </clip>
  47. </item>
  48. thumb 修改可拖拽的圆的样式: 

Android SeekBar样式修改实现签到效果

1、实现功能 签到的progress 支持气泡指示器
效果图

%title插图%num
2、实现代码
(1)重写SeekBar禁止拖动
package com.example.demo;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.SeekBar;

public class MySeekBar extends SeekBar{

public MySeekBar(Context context) {
super(context,null);
}

public MySeekBar(Context context, AttributeSet attrs) {
super(context, attrs, 0);

}

public MySeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);

}

@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
// 原来是要将TouchEvent传递下去的,我们不让它传递下去就行了
// return super.onTouchEvent(event);
return false;
}

}

(2)mainActivity
package com.example.demo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
private MySeekBar mySeekBar;
private int speed = 0;//进度条每次点击
private int lin_speed = 0;//上面的描述文字的位置
private LinearLayout ll_des;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mySeekBar = (MySeekBar) findViewById(R.id.seekbar);
Button btn_add = (Button) findViewById(R.id.btn_add);
mySeekBar.setProgress(2);
ll_des = (LinearLayout) findViewById(R.id.ll_des);

btn_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (speed == 2) {
speed = 0;
}
if (speed < 68) {
if (speed == 60) {
speed = speed + 10 – 2;//进度条每次前进十个位置
} else {
speed = speed + 10;//进度条每次前进十个位置
}
if (speed <= 60) {
lin_speed = lin_speed + 120;//组件根据实际组件长宽算出来的
}
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) ll_des.getLayoutParams();
lp.setMargins(lin_speed, 0, 0, 0);
ll_des.setLayoutParams(lp);
mySeekBar.setProgress(speed);
}
}
});
}
});
}

}
(3)布局
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
android:layout_gravity=”center_vertical”
android:layout_margin=”30dp”
android:orientation=”vertical”>

<Button
android:id=”@+id/btn_add”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”加” />

<LinearLayout
android:layout_width=”match_parent”
android:layout_height=”80dp”
android:orientation=”vertical”>

<LinearLayout
android:id=”@+id/ll_des”
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:layout_marginBottom=”4dp”
android:gravity=”center”
android:orientation=”vertical”>

<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:background=”@drawable/top_img”
android:paddingBottom=”2dp”
android:paddingLeft=”6dp”
android:paddingRight=”6dp”
android:paddingTop=”2dp”
android:text=”累积18积分”
android:textColor=”#ffffffff”
android:textSize=”9sp” />

<ImageView
android:layout_width=”12dp”
android:layout_height=”wrap_content”
android:src=”@drawable/san_jiao” />
</LinearLayout>

<RelativeLayout
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”>

<ImageView
android:id=”@+id/im_gif”
android:layout_width=”20dp”
android:layout_height=”20dp”
android:layout_marginLeft=”10dp”
android:src=”@drawable/m”
android:visibility=”gone” />

</RelativeLayout>

<com.example.demo.MySeekBar
android:id=”@+id/seekbar”
android:layout_width=”match_parent”
android:layout_height=”wrap_content”
android:layout_gravity=”center”
android:layout_marginTop=”6dp”
android:max=”70″
android:progressDrawable=”@drawable/ddd”
android:thumb=”@drawable/m” />

<LinearLayout
android:layout_width=”match_parent”
android:layout_height=”wrap_content”>

<TextView
style=”@style/myText”
android:text=”@string/_1″ />

<TextView
style=”@style/myText”
android:text=”@string/_2″ />

<TextView
style=”@style/myText”
android:text=”@string/_3″ />

<TextView
style=”@style/myText”
android:text=”@string/_4″ />

<TextView
style=”@style/myText”
android:text=”@string/_5″ />

<TextView
style=”@style/myText”
android:text=”@string/_6″ />

<TextView
style=”@style/myText”
android:text=”@string/_7″ />
</LinearLayout>
</LinearLayout>

</LinearLayout>
(4)核心draeble
<?xml version=”1.0″ encoding=”utf-8″?>
<layer-list xmlns:android=”http://schemas.android.com/apk/res/android”>

<item android:id=”@android:id/background” android:height=”8dp” android:top=”7dp”>
<shape>
<corners android:radius=”@dimen/activity_horizontal_margin”/>
<solid android:color=”#6E8B9B”/>
</shape>
</item>

<item android:id=”@android:id/progress” android:height=”8dp” android:top=”7dp” android:drawable=”@drawable/b”>
</item>

<item android:id=”@android:id/secondaryProgress” android:height=”8dp” android:top=”7dp”>
<clip>
<shape>
<corners android:radius=”@dimen/activity_horizontal_margin”/>
<solid android:color=”#6E8B9B”/>
</shape>
</clip>
</item>

</layer-list>

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速