1.1 TextVIEw参考文档docs特点是在界面中显示文本信息
属性 | 释义 | 说明 |
---|---|---|
textSize | 文字大小属性 | 单位:sp |
textcolor | 文字颜色 | 属性值:1.可在AS左侧预览显示2.点击预览图标,可以调整颜色显示 |
maxWIDth | 最大宽度 | 单位:dp |
layout_marginBottom | 底部外边距 | 应该是布局管理器的属性值 |
layout_wIDth | 一般为wrap_content | VIEwGroup.LayoutParams属性 |
layout_height | 一般为wrap_content |
参考文档docs
属性 | 释义 | 说明 |
---|---|---|
layout_wIDth | 宽 | 一般为match_parent |
layout_height | 高 | 一般为wrap_content |
hint | 提示信息 | EditText非常常用 |
inputType | 设置密码textPassword-数字-日期等 | docs |
drawableleft | 文字左侧绘制图像 | docs |
androID:drawablepadding | 绘制图像与文字的间距 | 搭配使用 |
lines | 编辑框的行数,特别的:超过行数的滚动显示 | docs |
参考文档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”,背景全透明,避免灰色 |
参考文档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 |
参考文档docs——是ProgressBar的子类
属性 | 释义 | 说明 |
---|---|---|
androID:numStars | The number of stars (or rating items) to show. | 星星个数 |
androID:rating | The rating to set by default. | |
androID:stepSize | The step size of the rating. | 默认是0.5颗星星 |
androID:isIndicator | 只能看,不能修改 |
2.1 ImageVIEw主要用于显示图片
参考文档docs
属性 | 释义 | 说明 |
---|---|---|
androID:src | Sets a drawable as the content of this ImageVIEw. | @drawable或@mipmap |
androID:scaleType | 尺度类型 | 默认是等比例缩放 |
androID:adjustVIEwBounds | Set 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 | 着色 | 类似蒙版 |
参考文档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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)