編輯:關於Android編程
SeekBar是一個拖動條控件,最簡單的案例就是我們的調節音量,還有音頻視頻的播放,傳統的SeekBar樣式,如圖
傳統的實現太簡單,不足以讓我們到能裝逼的地步。本來是打算實現滴滴出行滑動完成訂單的效果,可惜找不到效果圖,今天也就用淘寶的滑動驗證來作為實例
1.1 實現分析
SeekBar:使用progressDrawable屬性自定義SeekBar
拖動塊:使用thumb屬性更改,其實就是一張圖片
文字:使用RelativeLayout嵌套在一起
1.2 實現布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp"> <SeekBar android:id="@+id/sb" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="0" android:progressDrawable="@drawable/seekbar_bg" android:thumb="@drawable/thumb" android:thumbOffset="0dp" /> <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center" android:text="請按住滑塊,拖動到最右邊" android:textColor="#888888" android:textSize="14dp" /> </RelativeLayout>
其效果是
SeekBar屬性介紹
android:max:設置進度條最大的進度值
android:progress:設置當前的進度值
android:progressDrawable:設置進度條的Drawable樣式
android:thumb:設置進度條滑塊
android:thumbOffset:設置進度條滑塊的偏移量
1.3 SeekBar樣式
這裡是Android:progressDrawable裡面的seekbar_bg.xml
<?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <!--seekBar背景--> <item android:id="@android:id/background"> <!--形狀--> <shape android:shape="rectangle"> <!--大小--> <size android:height="29dp" /> <!--圓角--> <corners android:radius="2dp" /> <!--背景--> <solid android:color="#E7EAE9" /> <!--邊框--> <stroke android:width="1dp" android:color="#C3C5C4" /> </shape> </item> <!--seekBar的進度條--> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="2dp" /> <solid android:color="#7AC23C" /> <stroke android:width="1dp" android:color="#C3C5C4" /> </shape> </clip> </item> </layer-list>
1.4 代碼實現邏輯
代碼也非常簡單,seekBar提供了一個監聽事件OnSeekBarChangeListener,在對應的回調中實現文字的出現和消失、文本內容的修改
public class MainActivity extends AppCompatActivity implements SeekBar.OnSeekBarChangeListener { private TextView tv; private SeekBar seekBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv); seekBar = (SeekBar) findViewById(R.id.sb); seekBar.setOnSeekBarChangeListener(this); } /** * seekBar進度變化時回調 * * @param seekBar * @param progress * @param fromUser */ @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { if (seekBar.getProgress() == seekBar.getMax()) { tv.setVisibility(View.VISIBLE); tv.setTextColor(Color.WHITE); tv.setText("完成驗證"); } else { tv.setVisibility(View.INVISIBLE); } } /** * seekBar開始觸摸時回調 * * @param seekBar */ @Override public void onStartTrackingTouch(SeekBar seekBar) { } /** * seekBar停止觸摸時回調 * * @param seekBar */ @Override public void onStopTrackingTouch(SeekBar seekBar) { if (seekBar.getProgress() != seekBar.getMax()) { seekBar.setProgress(0); tv.setVisibility(View.VISIBLE); tv.setTextColor(Color.GRAY); tv.setText("請按住滑塊,拖動到最右邊"); } } }
好了,今天的SeekBar的使用就到這裡,如果對其他基礎控件感興趣的,可以關注我的博客,基礎控件系列,歡迎提供大家idea。
源碼下載:http://xiazai.jb51.net/201611/yuanma/Androidseekbar(jb51.net).rar
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持本站。
一、前言今天我們來看一下Android中一個眾人熟悉的一個屬性:shareUserId,關於這個屬性可能大家都很熟悉了,最近在開發項目,用到了這個屬性,雖然知道一點知識,
Android系統支持的顏色是由4個值組成的,前3個為RGB,也就是我們常說的三原色(紅、綠、藍),最後一個值是A,也就是Alpha。這4個值都在0~255之間。顏色值越
最近公司要求做個九宮格解鎖,本人用的是小米手機,看著他那個設置鎖屏九宮格很好看,就做了該組件,不使用圖片資源,純代碼實現。尊重每個辛苦的博主,在http://
好吧,先給大家展示效果圖:xml文件:<LinearLayout xmlns:android=http://schemas.android.com/apk/res/