Android高级UI组件

Android高级UI组件

  1. 进度条类组件
  2. 图像类组件
  3. 列表类组件
  4. 通用组件

一、进度条

用ProgressBar来标记。

1.Andorid提供了水平进度条、圆形进度条,不加设置默认为圆形进度条。

想展示实时进度:使用水平进度条
只想显示在加载:圆形进度条

2.属性:
①style来修改进度条的样式:特别注意无前缀andorid
style的属性值:
?android:attr/progressBarStyleHorizontal,细水平长条进度条
?android:attr/progressBarStyleSmall,小圆形进度条
?android:attr/progressBarStyleLarge,大圆形进度条
@android:style/Widget.ProgressBar.Horizontal,粗水平长条进度条
@android:style/Widget.ProgressBar.Large,旋转画面的大圆形进度条
@android:style/Widget.ProgressBar.Small,旋转画面的小圆形进度条

②android:max,设置最大值,属性值可为具体数值。

③android:progress,设置当前进度,属性值为具体数值

3.事件监听器

实现进度条的实时改变:需创建线程,在线程中循环获取耗时的进度,并更新进度。
在这里插入图片描述
在Android中不支持在主线程中更新UI组件,可以实例化一个Handler对象,即消息处理对象,通过发送消息来更新UI组件。、

对于耗时操作可通过一个线程来模拟

 progressBar= (ProgressBar) findViewById(R.id.pg);
        //消息处理
        mHandler=new Handler() {
            @Override
            public void handleMessage(Message msg) {
                if(msg.what==0x111){
                    progressBar.setProgress(mProgress);
                }
                else
                {
                    Toast.makeText(MainActivity.this, "耗时操作已完成", Toast.LENGTH_SHORT).show();
                    progressBar.setVisibility(View.GONE);
                }
            }
        };
        //创建一个线程,模拟耗时操作
        new Thread(new Runnable() {
            @Override
            public void run() {
                while(true)
                {
                    mProgress=doWork();
                    Message m=new Message();
                    if(mProgress<100){
                        m.what=0x111;//耗时操作未完成,为自定义代码,一般以0x开头
                        mHandler.sendMessage(m);
                    }
                    else
                    {
                        m.what=0x110;//耗时操作已完成
                        mHandler.sendMessage(m);
                        break;
                    }
                }
            }
            private  int doWork()
            {
                mProgress+=Math.random()*10;
                try {
                    Thread.sleep(200);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                return mProgress;
            }
        }).start();//开始线程
    }

二、拖动条

1.用SeekBar来标记。
2.为进度条的子类,具有进度条拥有的属性。
3.属性:
①android:thumb,修改拖动条的小点,属性值可为图片资源

三、星级评分条

用RatingBar标记,默认星星为灰色的

1.属性
①android:numStars,设置评分条的星星个数
②android:rating,属性值为数值,设置初始点亮个数
③android:stepSize,设置最小点亮星数。
④android:isIndicator,属性值为布尔类型,为true时,评分条只能看不能改

四、图像视图

用来显示图片,用ImageView来添加。

为图像组件,属性:
①android:src,显示图片

②设置缩放方式
android:scaleType=“fitXY” //把图片按照指定的大小在ImageView中显示,拉伸显示图片,不保持原比例,填满ImageView.
android:scaleType=“fitStart”//把原图按照比例放大缩小到ImageView的高度,显示在ImageView的start(前部/上部)

③设置最大宽度、高度:
android:adjustViewBounds=“true”//可设置…
android:maxWidth=“100dp”
android:maxHeight=“100dp”

④设置图片着色
android:tint,

在这里插入图片描述

扩展:只允许横屏模式,
则在manifests的activity后添加android:screenOrientation="landscape">

五、图像切换器

实现带动画效果的图片切换功能。

使用ImageSwitcher来添加。

使用Java代码来实现切换动画效果

ImageSwitcher imageSwitcher;

 imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(MainActivity.this,
 android.R.anim.fade_out));//设置淡出

六、网格视图

按行列分布方式显示多个组件

用GridView添加网格视图。

要显示图片,要设置一个适配器(Adapter),适配器:连接后端数据与前端显示的接口,是数据和UI组件中的重要纽带。要添加适配器,要在Java文件中写代码

四个常用适配器:
ArrayAdapter,数组适配器,将数组的多个值包装成列表项,只能显示一行文字。
SmipleAdapter,把List的多个值包装成多个列表项。
SmipleCursorAdapter,将数据库的内容以列表的形式展示出来。
BaseAdapter,对各个列表项进行最大限度的定制。

属性:
android:numColumns,设置列数,属性值为数值或auto_fit(自动排列)。

七、下拉列表框

使用Spinner添加

属性:
android:entries,添加下拉列表项,属性值为数组资源。
下拉列表框可使用entries来设置或使用适配器来指定。

发布了22 篇原创文章 · 获赞 1 · 访问量 2432

猜你喜欢

转载自blog.csdn.net/weixin_43786756/article/details/104182106