UI界面设计-Android

UI界面设计-Android,第1张

概述AndroidUI界面设计——附参考文档UI界面设计一、基本组件1.文本类组件1.1TextView参考文档docs1.2EditText(是textview组件的子类)2.按钮类组件2.1普通按钮组件Button(是textview组件的子类)2.1.1按钮事件——常用监听器2.2图片按钮ImageButton组件2.3单选按钮RadioButton

AndroID UI界面设计——附参考文档UI 界面设计一、基本组件1.文本类组件1.1 TextView参考文档docs1.2 EditText(是textview组件的子类)2.按钮类组件2.1普通按钮组件Button(是textview组件的子类)2.1.1按钮事件——常用监听器2.2图片按钮ImageButton组件2.3单选按钮RadioButton组件2.3.1添加选择更改事件2.4复选框CheckBox组件3.日期时间类组件二、高级组件1.进度条类组件1.1 ProgressBar1.2 SeekBar拖动条1.3RatingBar等级评论条2.图像类组件2.1 ImageView2.2图像切换器ImageSwitcher2.3网格视图GridView3.列表类组件3.1下拉列表Spinner3.2列表视图ListView3.3滚动视图ScrollView/HorizontalScrollView——非常常用4.通用组件4.1选项卡

UI 界面设计一、基本组件1.文本类组件

特点是在界面中显示文本信息

1.1 TextVIEw参考文档docs
属性释义说明
textSize文字大小属性单位:sp
textcolor文字颜色属性值:1.可在AS左侧预览显示2.点击预览图标,可以调整颜色显示
maxWIDth最大宽度单位:dp
layout_marginBottom底部外边距应该是布局管理器的属性值
layout_wIDth一般为wrap_contentVIEwGroup.LayoutParams属性
layout_height一般为wrap_content
1.2 EditText(是textvIEw组件的子类)

参考文档docs

属性释义说明
layout_wIDth一般为match_parent
layout_height一般为wrap_content
hint提示信息EditText非常常用
inputType设置密码textPassword-数字-日期等docs
drawableleft文字左侧绘制图像docs
androID:drawablepadding绘制图像与文字的间距搭配使用
lines编辑框的行数,特别的:超过行数的滚动显示docs
2.按钮类组件2.1普通按钮组件button(是textvIEw组件的子类)

参考文档docs

2.1.1按钮事件——常用监听器

什么是监听器

为组件设置监听器触发该监听器的动作(用户)要执行的代码

AS中两种添加事件监听器的方法

匿名内部类作为单击事件监听器通过onClick属性实现

2.1.1.1事件监听器步骤:

XML中设置组件ID

创建组件对象,findVIEwByID(R.ID.【string】)初始化

组件对象调用setonClickListener(new VIEw.OnClickListener(){

@overrIDe

……

})

例如添加消息提示框Toast.makeText(this, “单机了按钮”, Toast.LENGTH_SHORT).show();

2.1.1.2onClick属性步骤:

在Activity中编写一个包含VIEw类型形式参数的方法androID:onClick=“步骤1的方法名”2.2图片按钮Imagebutton组件

相同点:

都可通过单机出发onClick事件

不同点:

Imagebutton没有text属性
属性释义说明
src图片资源属性@mipmap/文件下
background背景设置背景值为“#0000”,背景全透明,避免灰色
2.3单选按钮Radiobutton组件

参考文档docs

搭配标签嵌套使用

2.3.1添加选择更改事件

setOnCheckedChangeListener(new RadioGroup)

获取RadioGroup对象调用对象调用setonCheckedchangelistener方法new一个RadioGroup.OnCheckedchangelistener Listener重写抽象方法,此处备注匿名内部类的详解连接Toast提示框2.4复选框CheckBox组件

参考文档docs

复选功能方框图形button的子类不需要像RaIDoGroup一样利用标签包裹
3.日期时间类组件

日期选择器DatePicker——参考文档

时间选择器TimePicker——参考文档

计时器Chronometer——参考文档

二、高级组件1.进度条类组件1.1 Progressbar

参考文档docs

实时精度——横向进度条(Determinate Progress)

正在加载——圆形进度条(Indeterminate Progress)

属性释义说明
style进度条类型六种Widget.Progressbar.Horizontal;Widget.Progressbar.Small;Widget.Progressbar.Large;Widget.Progressbar.Large;Widget.Progressbar.Small.Inverse
或者主题属性值:androID:attr/progressbarStyleHorizontal
max最大值定义一个最大值,例如:100
progress进度例如:50
线程——流程图步骤一:判断是否完成,否转步骤二,是转步骤三;步骤二:调用setProgress()方法更新进度,返回步骤一步骤三:调用setVisibility()方法设置进度条不显示,结束

知识点:

标签设置加载时全屏显示,getwindow()消息处理作为组件更新子线程创建线程模拟进度处理程序

Layout文件:

<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    androID:background="@mipmap/bg"    tools:context=".MainActivity">    <Progressbar        androID:ID="@+ID/progressbar"        androID:layout_wIDth="match_parent"        androID:layout_height="wrap_content"        tools:ignore="MissingConstraints"                androID:max="100"        androID:layout_alignParentBottom="true"        androID:layout_marginBottom="30dp" /></relativeLayout>

MainActivity.java

package com.ws.progressbardemo;import androIDx.annotation.NonNull;import androIDx.appcompat.app.AppCompatActivity;import androID.annotation.Suppresslint;import androID.app.Activity;import androID.os.Bundle;import androID.os.Handler;import androID.os.Message;import androID.vIEw.VIEw;import androID.vIEw.WindowManager;import androID.Widget.Progressbar;import androID.Widget.Toast;public class MainActivity extends Activity {    private Progressbar progressbar;    private int mProgress=0;    private Handler mhandler;    @Suppresslint("HandlerLeak")    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        getwindow().setFlags(WindowManager.LayoutParams.FLAG_FulLSCREEN,                WindowManager.LayoutParams.FLAG_FulLSCREEN);//设置全屏显示,手机顶端的信号等状态栏目都取消        progressbar = findVIEwByID(R.ID.progressbar);        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).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;//自定义的消息代码,//耗时 *** 作未完成                        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.2 Seekbar拖动条

参考文档docs——是ProgressBar的子类

属性释义说明
androID:thumb在搜索栏上绘制拇指。可以以“ ” 形式引用另一个资源,也可以以“ ” 形式引用主题属性。@[+][package:]type/name?[package:]type/name
1.3ratingbar等级评论条

参考文档docs——是ProgressBar的子类

属性释义说明
androID:numStarsThe number of stars (or rating items) to show.星星个数
androID:ratingThe rating to set by default.
androID:stepSizeThe step size of the rating.默认是0.5颗星星
androID:isIndicator只能看,不能修改
2.图像类组件

主要用于显示图片

2.1 ImageVIEw

参考文档docs

属性释义说明
androID:srcSets a drawable as the content of this ImageVIEw.@drawable或@mipmap
androID:scaleType尺度类型默认是等比例缩放
androID:adjustVIEwBoundsSet this to true if you want the ImageVIEw to adjust its bounds to preserve the aspect ratio of its drawable.设置为true,调整组件包裹自身内容,此外设置maxWIDth和maxHeight,则图片会不超过最大长宽的前提下完美包裹图片内容
androID:tint着色类似蒙版
2.2图像切换器ImageSwitcher

参考文档docs

图像切换+动画效果

`setInAnimation(Animation inAnimation)`
2.3网格视图GrIDVIEw

参考文档docs

1.添加图片资源,不能通过某个属性(src)

2.适配器Adapter:连接后端数据与前端显示的接口,数据与UI组件之间的重要纽带

3.其中,数据源可以是ArrayList和Cursor

四种适配器:

ArrayAdapterSimpleAdapterSimpleCursorAdapter:数据库内容以列表形式展现出来BaseAdapter:可定制性强

注意:创建适配器挺复杂的

3.列表类组件3.1下拉列表Spinner

参考文档Docs

可通过androID:entrIEs属性和XML数组资源进行指定下拉选项指定适配器 setAdapter()方法3.2列表视图ListVIEw

例如:微信朋友目录

添加ListVIEw组件创建一个linearLayout布局文件,设置ImageVIEw和TextVIEw标签参数Avtivity下创建适配器,传递参数设置适配器,并状态栏输出

Main_Activity.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:tools="http://schemas.androID.com/tools"    androID:orIEntation="vertical"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    tools:context=".MainActivity">    <ListVIEw        androID:ID="@+ID/ListVIEw"        androID:layout_wIDth="match_parent"        androID:layout_height="match_parent" /></linearLayout>

main.xml

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:orIEntation="horizontal"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent">    <ImageVIEw        androID:ID="@+ID/imageVIEw"        androID:paddingtop="10dp"        androID:paddingBottom="10dp"        androID:paddingStart="10dp"        androID:paddingEnd="10dp"        androID:maxWIDth="80dp"        androID:maxHeight="80dp"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"/>    <TextVIEw        androID:ID="@+ID/textVIEw"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:padding="10dp"        androID:layout_gravity="center"/></linearLayout>

MainActivity.java

package com.ws.ListvIEw;import androIDx.appcompat.app.AppCompatActivity;import androID.os.Bundle;import androID.vIEw.VIEw;import androID.Widget.AdapterVIEw;import androID.Widget.ListVIEw;import androID.Widget.SimpleAdapter;import androID.Widget.Toast;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.ListIterator;import java.util.Map;import java.util.SimpleTimeZone;public class MainActivity extends AppCompatActivity {    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        int[] imageID = new int[]{R.drawable.img01,R.drawable.img02,R.drawable.img03,R.drawable.img04,                R.drawable.img05,R.drawable.img06,R.drawable.img07,R.drawable.img08,                R.drawable.img09,R.drawable.img10,R.drawable.img11,R.drawable.img12};        String[] TitleID = new String[]{"汪一","汪二","汪三","汪4","汪5","汪6","汪7","汪8","汪9","汪10","汪11","汪12"};        List<Map<String,Object>> Listitem = new ArrayList<>();        for (int i =0;i<imageID.length;i++){            Map<String,Object> map = new HashMap<>();            map.put("image",imageID[i]);            map.put("Title",TitleID[i]);            Listitem.add(map);        }        SimpleAdapter simpleAdapter = new SimpleAdapter(this,Listitem,R.layout.main,                new String[]{"image","Title"},new int[]{R.ID.imageVIEw,R.ID.textVIEw});        ListVIEw ListVIEw = findVIEwByID(R.ID.ListVIEw);        ListVIEw.setAdapter(simpleAdapter);        ListVIEw.setonItemClickListener(new AdapterVIEw.OnItemClickListener() {            @OverrIDe            public voID onItemClick(AdapterVIEw<?> parent, VIEw vIEw, int position, long ID) {                Map<String,Object> map = (Map<String, Object>) parent.getItemAtposition(position);                Toast.makeText(MainActivity.this,  map.get("Title").toString(), Toast.LENGTH_LONG).show();            }        });    }}
3.3滚动视图ScrollVIEw/horizontalscrollview——非常常用

纵向参考文档docs,横向参考文档docs,两种添加滚动视图的方法:XML中和Java代码中

组件正常添加,但是要注意不能包含多个子组件,因此可以采用布局管理器嵌套使用Java代码中:使用构造方法ScrollVIEw创建一个滚动视图对象应用addvIEw方法添加组件到滚动视图将滚动视图添加到布局管理器中4.通用组件4.1选项卡

参考文档docs

在布局文件中添加TabHost、TabWidget和TabContent组件编写个标签页的XML布局文件获取并初始化TabHost组件weiTabHost对象添加标签页点赞收藏分享文章举报

蚩尤克里里帅发布了15 篇原创文章 · 获赞 0 · 访问量 509私信 关注 总结

以上是内存溢出为你收集整理的UI界面设计-Android全部内容,希望文章能够帮你解决UI界面设计-Android所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1068412.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存