界面下笔记

常有的ui的布局

1.LinearLayout:线性布局

用来控制其子View一水平货或垂直方式展开显示

2.RelativeLayout相对布局

用来控制其子View以相对定位或垂直方式展开显示

3.FrameLayout帧布局

每一个子view都代表一个圈面后面出现的会覆盖前面的画面,

通过子view的androidlayout_gravity属性指定子视图的位子

四.常用的视图标签的属性视图的常用属性

id:为控件指定相应的id

 android:layout_width指定当前视图的宽度
 android:layout_height指定空间当中字体的大小
text 指定控件中显示的文字
textSize指定控件中显示文字的大小
background:指定背景图片
layout_gravity控件本身相对于父视图的位置

grvity指定控件的内容的基本位置

内边距属性

android;padding

android:paddingleft

android:paddingtop

android:paddingRight

android:paddingBottom

外边距属性

android:Layout_margin

android:Layout_marginLeft

android:Layout_marginTop

android:Layout_marginRight

android:Layout_marginBotton

相对兄弟视图定位

android:layout_alignLeft

android:layout_alignTop

android:layout_alignRight

android:layout_alignBotton

反方向对齐属性

android:layout_toLeftof

android:layout_toRightof

android:layout_above

android:layout_below

相对父视图定位1

android:layout:alignparentleft

android:layout:alignparentTop

android:layout:alignparentRight

android:layout:alignparentBottom

相对父视图居中属性

android:alyout_centerinparent

android:layout_centerVertical

android:layout_centerHorizontal

3只针对LInearLayout

orientation(方向)

layout_weight(权重)

layout_weight权重的值

=0(默认值):指定多大空间留占据多大的空间

>0将父视图中的可用空间进行分割值越大权重就越大占据的比列就会越大

Layout_weight的使用场景

将布局的宽度或者高度平均分成几个等份

垂直方向上占用中间所用空间或水平方向上占用中间所有空间

5.ListView的使用

1.理解

ListView是一种用来显示多个滑动项列表的ViewGroup

需要使用Adapter将集合数据和每一个item所用对应的布局动态配到LiestView中显示

显示列表listView.setAdapter(adapter)

更新列表adapter.notifyDataSetChanged{}

Data  和  itemLayout  → Adapte →ListView
2使用

ArrayAdapter:显示简单文本列表

ArrayAdapter(Context context,int resource,T[] obect)

B.SimplAdapter抽象的:显示复杂列表

   int getCount();得到集合数据的个数决定能显示多少行

object getItem(int prsition):根据position的到对应的数据对象

View getView(intposition view  converView,ViewGroup parent)

根据position返回对应的带数据的item视图对象

positiom下标

ConverView:可复用的item视图对象为null:没有可复用的我们必须加载一个item

布局文件 并赋值给convertView

不为null:直接使用此试图对象

  后面:找到子view找到对应的书设置数据

parent:listview

d.给ListView的item设置监听item的点击监听:ListView.setOnitemLongClickListemer(listener)

itemde 长按监听

ListView.setonitemClickListener(listemer)特么的长按监听:ListView.

setonItemlongClickListener(listener)

第零层:不优化:

每次执行getView(),都会执行会有卡顿,在数据很多时甚至会内存溢出

第一层:复用converterView
if(converView == null){
converView = View.inflate(R.layout.xxx);//n+1

}
问题:每次执行getView()都需要执行converView,findViewById()
得到子View
第二层:使用ViewHolder 减少findViewById()的次数
Viewholer holder = null;
if(converView == null){
converterView = View.inflate(R.layout.xxx);
holer = new ViewHoler();
holer.imageView =
(ImageView)converterView.findViewById(xxx);
holer.imageView = 
(TextView)converterView.findViewById(yyy);
converterView.setTag(holder);
    }else  {
holder = (Viewholder)converterView.getTag();
    }
Person p = data.get(position);
holder.imageView.setImageResource(p.getIcon());
holder.textView.setText(p.getName());

static class ViewHolder{
ImageView imageView;
TextView textView;
}
//ison;[{},{}]
问题1:对于联网获取列表数据,如果数据量太大(比如超过100000条甚至更多),
一次获取出来显示,太慢太耗流量:第四层优化
问题2:对于联网获取列表数据,如果包含图片数据,每次都请求获取显示,
太慢太耗流量 :第三层优化
第3层优化:图片三级缓存处理(LRU)
1).内地缓存  优先加载 ,速度最快
2).本地缓存 此优先加载,速度稍快
3).网络缓存 最后加载,速度有网络速度决定(浪费刘江)
第4层:对数据列表进行分页加载显示
1).自己做:通过Scroll监听
listView.setonScrollistener(scrollListener),当到达底部时加载下一页
列表数据并显示
2).使用第三方开源框架:Android - PullToRefresh或其他
6.style和Theme
1).style:多个视图标签属性的集合
好处:复用标签属性
目标:布局文件中的视图标签
2).theme:本质也是style
好处:复用标签属性
目标:功能清单文件中整个应用/Activity
7.练习
1).应用功能编码的基本流程
外观:布局文件,读取数据,定义Adapter,显示列表
行为:设置事件监听,并在回调就去中作出对应的响应
2).初始化显示列表和更新列表
3).GridView的基本使用


 

_









  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值