二探ListView
使用draw9patch
- 打开内置terminal
- 输入
CD C:\Users\Gaby\AppData\Local\Android\sdk - 在该目录下输入
draw9patch - 导入图片,开始绘制
- 本文成果图:
成果图
- 左边和上边绘制的黑线,表示在纵向和横向拉伸时拉伸的部分。右边和下边的黑线表示要用于显示内容的部分
- 从图片上可以看出,右边和下边的黑线可以偏中间一点
上代码
首先写MainActivity,先只考虑需要哪些功能,不去管如何实现
1 |
protected void onCreate(Bundle savedInstanceState) {
|
顺序是:MainActivity->活动布局文件->Item类->Item类对象的集合->初始化该集合->item_layout单项布局->adapter类
活动布局文件:
1 |
<LinearLayout |
注意:
android:divider="#0000"该项用于设置ListView的的分割线为透明- 输入框和button通过LinearLaout绑定在一起
- 最外
LinearLayout的orientation设置为vertical是让ListView和内LinearLayout上下放置 - ListView设置
height = "0dp"weight = "1"切内LinearLayout无设置,意思就是,在保证内LinearLayout的区域大小后,其他空间都归ListView,同理内LinearLayout的EditText和Button
Item类
1 |
public class Item {
|
注意:
- 如果要在MainActivity中使用SEND来给一个Item对象赋值,那么这个SEND常量就一定得在Item类中定义
Item类对象的集合->初始化该集合
1 |
private List<Item> mesgs = new ArrayList<Item>();
private void initData() {
|
item_layout单项布局
1 |
<?xml version="1.0" encoding="utf-8"?> |
注意:
android:orientation="vertical"以及两个LinearLayout中各自的android:layout_gravity="left"android:layout_gravity="right"
使得单项布局中的两个对话框一左一右垂直排列
item_layout- 实际上对话框中带有TextView,因为LinearLayout中的两个属性都是
wrap_content
adapter类
1 |
public class mess_adapter extends ArrayAdapter<Item>{
private int resourceId;
public mess_adapter(Context context,int textViewResourceId, List<Item> objects) {
|
注意:
- 因为不能通过一个布局去取得布局中的控件,也因此,每个控件都设置id
- viewHolder存放着四个控件实例
二探ListView的更多相关文章
- AQS源码二探-JUC系列
本文已在公众号上发布,感谢关注,期待和你交流. AQS源码二探-JUC系列 共享模式 doAcquireShared 这个方法是共享模式下获取资源失败,执行入队和等待操作,等待的线程在被唤醒后也在这个 ...
- Android Widget 开发详解(二) +支持listView滑动的widget
转载请标明出处:http://blog.csdn.net/sk719887916/article/details/47027263 不少开发项目中都会有widget功能,别小瞧了它,他也是androi ...
- WPF入门教程系列二十——ListView示例(二)
第四步.WPF后台逻辑代码编写 在后台用Entity Framework 6.1的Code First方式获取数据库中的数据.同时,在“刷新”按钮的方法中进行数据绑定.操作步骤如下: 1) 在“刷新 ...
- android技巧(二)listview的优化
对于listview的优化有以下三个措施: 1.原有listview每一个item显示时都会调用一次getView()方法,实际上对于ListView而言,只需要保留能够显示的最大个数的view即可, ...
- android 项目学习随笔十二(ListView加脚布局)
1.ListView加脚布局 头布局initHeaderView,在onTouchEvent事件中进行显示隐藏头布局切换 脚布局initFooterView,实现接口OnScrollListener, ...
- Android基本控件之ListView(二)<ListView优化>
之前我们说到ListView的基本用法.但是,有很多的时候会额外的占用一些内存,从而消耗了性能.既然有消耗性能的可能,那么我们就对其做出相应的优化 我们首先来说说优化的步骤: 第一步.将宽和高设置为填 ...
- 老司机学新平台 - Xamarin Forms开发框架二探 (Prism vs MvvmCross)
在上一篇Xamarin开发环境及开发框架初探中,曾简单提到MvvmCross这个Xamarin下的开发框架.最近又评估了一些别的,发现老牌Mvvm框架Prism现在也支持Xamarin Forms了, ...
- listview下拉刷新和上拉加载更多的多种实现方案
listview经常结合下来刷新和上拉加载更多使用,本文总结了三种常用到的方案分别作出说明. 方案一:添加头布局和脚布局 android系统为listview提供了addfootview ...
- Android开发之自定义的ListView(UITableViewController)
Android开发中的ListView, 顾名方法思义,就是表视图.表示图在iOS开发中就是TableView.两者虽然名称不一样,但是其使用方法,使用场景以及该控件的功能都极为相似,都是用来展示大量 ...
随机推荐
- redis的安装与配置
官网 http://redis.io/download 管理工具 http://docs.redisdesktop.com/en/latest/quick-start/ https://redisde ...
- python手记(45)
python 声音编辑,减少音量 #!/usr/bin/env python # -*- coding: utf-8 -*- #http://blog.csdn.net/myhaspl #code:m ...
- VC工程中的.rc文件和.rc2文件的区别
rc和rc2都是资源文件,包含了应用程序中用到的所有的资源. 两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改; 而rc2中的资源不能在VC的集成环境下直接进行编辑和 ...
- 在Linux CentOS 6.5 (Final)上安装git-1.9.0
CentOS 6.5 (Final)默认安装的git版本为1.7.1.3,而我们希望安装1.9.0版本.由于rpm安装库里没有1.9.0版本,因此我们需要找其它方法来安装. 网上有很多文章介绍了如何从 ...
- Invert Binary Tree 解答
Quetion Invert a binary tree. 4 / \ 2 7 / \ / \ 1 3 6 9 to 4 / \ 7 2 / \ / \ 9 6 3 1 Solution 1 -- R ...
- LeeCode-Swap Nodes in Pairs
Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...
- SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符.SQL 通配符必须与 LIKE 运算符一起使用,必须放在引号内. 在 SQL 中,可使用以下通配符: %:替代一个或多个字符. _:仅替代 ...
- UGUI Scrollbar控件
如题就是Scrollbar控件,它简单可以看成 Scrollbar 和 Image组件组成 它基本上不单独使用多数是制作滚动视图.我们来看看他独特的属性,重复的属性就不在介绍了! 属性讲解: Hand ...
- Spring的AOP1
引用:http://my.oschina.net/huangyong/blog/161338 是一个周末,刚给宝宝喂完牛奶,终于让她睡着了.所以现在我才能腾出手来,坐在电脑面前给大家写这篇文章. 今天 ...
- 《你必须知道的495个C语言问题》知识笔记及补充
1. extern在函数声明中是什么意思? 它能够用作一种格式上的提示表明函数的定义可能在还有一个源文件里.但在 extern int f(); 和 int f(); 之间并没有实质的差别. 补充:e ...