您好,登錄后才能下訂單哦!
Android開發中怎么實現一個拖動條和評星條的功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
一 拖動條
安卓手機音量設置都是給出一個拖動條,使得用戶能夠拖動滑塊進行設置,這里我們介紹拖動條。
安卓拖動條控件是繼承自ProgressBar控件,所以它能夠支持ProgressBar的xml屬性。但是他有自己的獨特屬性:
android:max 設置最大的拖動兩
android:progress 設置初始化進度
android:thumb 設置滑塊圖形
事件監聽方面,拖動條需要注意:我們不在監聽用戶的點擊操作,而是監聽滑塊的改變,下面用一個實例簡單的操作一下拖動條。
實例:界面上給出一個拖動條和文本,滑動滑塊文本動態顯示
1.新建工程,在布局文件中加入一個文本和拖動條。這里我設置了當前進度值和滑塊圖形
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="112dp" android:text="當前進度:0" /> <SeekBar android:id="@+id/seekBar1" android:thumb="@drawable/penguin" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" /> </RelativeLayout>
2.代碼中獲取文本和拖動條,給拖動條加監聽器。監聽器內部控制了文本的動態顯示。監聽有三個方法,注意:改寫一下開始和結束滑動的方法,另外一個和是否是用戶滑動有關,我們且不去管它
tv = (TextView)findViewById(R.id.textView1); sb = (SeekBar)findViewById(R.id.seekBar1); sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTrackingTouch(SeekBar s) { final int p = s.getProgress(); tv.setText("當前進度:" + p); }//結束滑動 @Override public void onStartTrackingTouch(SeekBar s) { tv.setText("正在拖動!"); }//開始滑動 @Override public void onProgressChanged(SeekBar s, int arg1, boolean arg2) { } });
運行代碼,滑動滑塊,能夠看到文本根據滑動動態的顯示內容。
二 評星條
很多視屏軟件和是應用市場軟件都有評星的功能,這是的評分應用場景是:拖動評星條,之后點擊某個提交按鈕完成評分。這里我們簡單看一下評星條的屬性,之后模擬一個類似的評星功能。
android:isIndicator 表明是指示器,也就是能不能被用戶評分,值為"true"不能被改變
android:numStars 評星條的星星總數
android:rating 評星條的默認星級
android:stepSize 評星一次變化的分量,默認狀態下為0.5,用戶一次拖動改變0.5的星級
實例:做一個簡單的評分界面
1.新建工程,布局中加入顯示文本,評星條,提交按鈕
<RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" > <RatingBar android:id="@+id/ratingBar1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:layout_marginTop="184dp" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/ratingBar1" android:layout_centerHorizontal="true" android:layout_marginBottom="100dp" android:text="評分:" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/ratingBar1" android:layout_centerHorizontal="true" android:text="提交" /> </RelativeLayout>
2.在主Activity里面實例化顯示文本,評星條,按鈕
tv = (TextView)findViewById(R.id.textView1); asb = (RatingBar)findViewById(R.id.ratingBar1); b = (Button)findViewById(R.id.button1);
3.給按鈕加監聽事件,獲取評星條的評分,顯示到文本中去。評星的獲取通過getRating()方法
b.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { final float r; r = asb.getRating(); tv.setText("評分"+ r +"星"); } });
運行代碼,效果如下:
看完上述內容,你們掌握Android開發中怎么實現一個拖動條和評星條的功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。