Android開(kāi)發(fā)之拖動(dòng)條和評(píng)分組件用法分析
本文實(shí)例講述了Android開(kāi)發(fā)之拖動(dòng)條和評(píng)分組件用法。分享給大家供大家參考,具體如下:
今天閑著沒(méi)事做就拿出了Android書(shū)接著學(xué)習(xí),android就是組件多有時(shí)候還會(huì)弄混淆了。這次介紹的是拖動(dòng)條和評(píng)分組件,這2個(gè)組件也是超級(jí)簡(jiǎn)單的
下面就一個(gè)一個(gè)的來(lái)研究。
1. 拖動(dòng)條,就類似android手機(jī)上調(diào)節(jié)音量那個(gè),該組件和對(duì)話框不同的是用戶可以操作。該組件的xml表現(xiàn)形式如下
<SeekBar android:id="@+id/seek" android:layout_marginLeft="20dip" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
光這樣太枯燥了,這里我做了個(gè)拖動(dòng)切換圖片的小例子。這里就要介紹下拖動(dòng)條的長(zhǎng)度了這個(gè)長(zhǎng)度是可控制的像這里我有5張圖片拖動(dòng)條的size就是5.這個(gè)設(shè)置我直接寫(xiě)在了程序里。實(shí)現(xiàn)很簡(jiǎn)單就是在拖動(dòng)條的基礎(chǔ)上加個(gè)ImageView,然后對(duì)拖動(dòng)條進(jìn)行拖動(dòng)的監(jiān)聽(tīng)值改變了就切換ImageView就好了。下面是主要代碼。
bar=(SeekBar)this.findViewById(R.id.seek); imageview=(ImageView)this.findViewById(R.id.img); bar.setMax(5); bar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub } public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { //切換圖片 imageview.setImageResource(imagedata[seekBar.getProgress()]); } });
效果圖如下所示,我覺(jué)得還是挺好的。
2. 下面就是評(píng)分插件了,android默認(rèn)情況下是五角星,如果有必要可以弄成別的
這里我弄了一種自定義的類型,來(lái)看下吧
(1)在drawable下面弄個(gè)xml文件內(nèi)容如下
<?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:drawable="@drawable/star_empty" /> <item android:id="@+android:id/secondaryProgress" android:drawable="@drawable/star_empty" /> <item android:id="@+android:id/progress" android:drawable="@drawable/star_full" /> </layer-list>
star_empty是灰色的五角星,star_full是黃色的五角星。上面的配置文件理解起來(lái)也很簡(jiǎn)單,下面就把這個(gè)樣式嵌入到評(píng)分組件上,首先還是寫(xiě)個(gè)樣式文件
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="ratingbarstyle" parent="@android:style/Widget.RatingBar"> <item name="android:progressDrawable"> @drawable/starconfig </item> <item name="android:minHeight">53dip</item> <item name="android:maxHeight">53dip</item> </style> </resources>
順便說(shuō)明下starconfig就是上面那個(gè)配置文件,下面就是標(biāo)簽了,該組件的常用屬性是步長(zhǎng)、星星的個(gè)數(shù)就像下面這樣
<RatingBar android:id="@+id/rating" android:numStars="5" android:stepSize="1" style="@style/ratingbarstyle" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
后面也自然是事件處理了
rbar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { int num=(int)rating; String result=null; switch (num) { case 1: result="非常不滿意"; break; case 2: result="不滿意"; break; case 3: result="還可以"; break; case 4: result="滿意"; break; case 5: result="非常滿意"; break; default: break; } Toast.makeText(MyDailogActivity.this, result, 1).show(); } });
來(lái)看下效果吧
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android布局layout技巧總結(jié)》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android資源操作技巧匯總》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android利用GridView實(shí)現(xiàn)單選效果
本篇文章主要介紹了Android利用GridView實(shí)現(xiàn)單選效果的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-05-05詳解Android?Flutter中SliverAppBar的使用教程
對(duì)于一個(gè)APP來(lái)說(shuō),肯定會(huì)有一個(gè)AppBar,這個(gè)AppBar一般包含了APP的導(dǎo)航信息等。在lutter已經(jīng)為我們提供了一個(gè)非常強(qiáng)大的AppBar組件,這個(gè)組件叫做SliverAppBar。本文就來(lái)聊聊它的具體使用吧2023-01-01Android實(shí)踐之帶加載效果的下拉刷新上拉加載更多
這篇文章主要給大家介紹了關(guān)于Android實(shí)踐之下拉刷新上拉加載更多的相關(guān)資料,實(shí)現(xiàn)的效果在現(xiàn)在的很多項(xiàng)目中都能用到,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-12-12Android使用ImageView實(shí)現(xiàn)支持手勢(shì)縮放效果
這篇文章主要介紹了Android使用ImageView實(shí)現(xiàn)支持手勢(shì)縮放效果,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09android 使用okhttp可能引發(fā)OOM的一個(gè)點(diǎn)
這篇文章主要介紹了android 使用okhttp可能引發(fā)OOM的一個(gè)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Android自定義控件案例匯總2(自定義開(kāi)關(guān)、下拉刷新、側(cè)滑菜單)
這篇文章主要介紹了Android自定義控件案例匯總,自定義開(kāi)關(guān)、Listview實(shí)現(xiàn)下拉刷新、側(cè)滑菜單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12Android中實(shí)現(xiàn)在矩形框中輸入文字顯示剩余字?jǐn)?shù)的功能
在矩形輸入框框中輸入文字顯示剩余字?jǐn)?shù)的功能在app開(kāi)發(fā)中經(jīng)常會(huì)見(jiàn)到,今天小編就通過(guò)實(shí)例代碼給大家分享android實(shí)現(xiàn)輸入框提示剩余字?jǐn)?shù)功能,代碼簡(jiǎn)單易懂,需要的朋友參考下吧2017-04-04Android ViewModel與Lifecycles和LiveData組件用法詳細(xì)講解
JetPack是一個(gè)開(kāi)發(fā)組件工具集,他的主要目的是幫助我們編寫(xiě)出更加簡(jiǎn)潔的代碼,并簡(jiǎn)化我們的開(kāi)發(fā)過(guò)程。JetPack中的組件有一個(gè)特點(diǎn),它們大部分不依賴于任何Android系統(tǒng)版本,這意味者這些組件通常是定義在AndroidX庫(kù)當(dāng)中的,并且擁有非常好的向下兼容性2023-01-01