进度条:Progressbar
拖动条:Seekbar
星级条:ratingbar
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" xmlns:app="http://schemas.androID.com/apk/res-auto" xmlns:tools="http://schemas.androID.com/tools" androID:layout_wIDth="match_parent" androID:layout_height="match_parent" tools:context=".MainActivity"> <Progressbar androID:ID="@+ID/progressbar1" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:max="100" androID:progress="50"> </Progressbar> <Progressbar androID:ID="@+ID/progressbar2" androID:layout_below="@ID/progressbar1" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:max="100" androID:progress="70"> </Progressbar> //拖动条控制图片透明度 <Seekbar androID:layout_below="@ID/progressbar2" androID:ID="@+ID/seekbar" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:max="255" androID:progress="110" /> <ImageVIEw androID:layout_below="@ID/seekbar" androID:layout_margintop="10dp" androID:ID="@+ID/image" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:src="@mipmap/a" /> <ratingbar androID:ID="@+ID/ratingbar" androID:layout_below="@ID/image" androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:numStars="5" androID:rating="2" androID:stepSize="1" androID:isIndicator="false" > </ratingbar></relativeLayout>
java部分的调用代码
package com.example.myhighui;import androIDx.annotation.NonNull;import androIDx.appcompat.app.AppCompatActivity;import androID.os.Bundle;import androID.os.Handler;import androID.os.Message;import androID.vIEw.VIEw;import androID.Widget.ImageVIEw;import androID.Widget.Progressbar;import androID.Widget.Radiobutton;import androID.Widget.ratingbar;import androID.Widget.Seekbar;import androID.Widget.Toast;public class MainActivity extends AppCompatActivity { /* * 安卓不支持在MainActivity中更新组件 * 但是提供了Handler,通过这一对象可以同过发送消息来更新UI组件 * */ private Progressbar progressbar = null; private int mProgress = 0;//用于记录进度 private Handler mHandler = null;//用于处理消息 private Seekbar seekbar = null; private ImageVIEw imageVIEw = null; ratingbar ratingbar = null; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); progressbar = (Progressbar)findVIEwByID(R.ID.progressbar2); mHandler = new Handler(){ @OverrIDe//处理收到的消息 public voID handleMessage(@NonNull Message msg) { if(msg.what == 0x111){//任务未完成,更新进度条 progressbar.setProgress(mProgress); } else {//任务完成,删掉进度条 Toast.makeText(MainActivity.this, " *** 作已完成",Toast.LENGTH_SHORT); progressbar.setVisibility(VIEw.GONE);//进度条设置为不显示 } } }; //新建一个线程,执行耗时 *** 作 new Thread(new Runnable(){ //模拟耗时 *** 作 private int doWork(){ mProgress+=Math.random()*10; try { Thread.sleep(200); } catch (InterruptedException e) { e.printstacktrace(); } return mProgress; } @OverrIDe public voID run(){ while(true){ mProgress = doWork(); Message message = new Message(); if(mProgress<100){//耗时 *** 作未完成 message.what = 0x111; mHandler.sendMessage(message);//给主线程发送消息 } else {//耗时 *** 作已经完成 message.what = 0x110; mHandler.sendMessage(message);//给主线程发送消息 break; } } } }).start(); //用拖动条改变图片透明度 imageVIEw = findVIEwByID(R.ID.image); seekbar = findVIEwByID(R.ID.seekbar); seekbar.setonSeekbarchangelistener(new Seekbar.OnSeekbarchangelistener() { @OverrIDe public voID onProgressChanged(Seekbar seekbar, int progress, boolean fromUser) { //imageVIEw.setimageAlpha(progress);//修改图片透明度 } @OverrIDe public voID onStartTrackingtouch(Seekbar seekbar) { } @OverrIDe public voID onStopTrackingtouch(Seekbar seekbar) { } }); ratingbar ratingbar = (ratingbar)findVIEwByID(R.ID.ratingbar); String string = String.valueOf(ratingbar.getrating()); //星级评分继承自进度条,所以可以调用 String progress = String.valueOf(ratingbar.getProgress()); }}
呈现结果
总结
以上是内存溢出为你收集整理的Android基础——高级UI组件全部内容,希望文章能够帮你解决Android基础——高级UI组件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)