首先附上运行结果:
如果你没有学过listview请你先看一看基本知识。不想再说的那么细了 太多了。
首先是listview布局
<?xml version="1.0" encoding="utf-8"?> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/lv_view" android:layout_width="match_parent" android:layout_height="match_parent" android:cacheColorHint="#00000000" android:background="@drawable/back" android:orientation="vertical" > </ListView>
在这里我为什么这样设置
android:cacheColorHint="#00000000" android:background="@drawable/back"
在Android中,ListView是最常用的一个控件,在做UI设计的时候,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了。
这是什么原因导致的呢?起初我以为是因为我把背景设置成了白色,然后产生色差导致的,后来查阅资料发现,其实这个要从Listview的效果说起,默认的ListItem背景是透明的,而ListView的背景是固定不变的,所以在滚动条滚动的过程中如果实时地去将当前每个Item的显示内容跟背景进行混合运算,所以android系统为了优化这个过程用,就使用了一个叫做android:cacheColorHint的属性,在黑色主题下默认的颜色值是#191919,所以就出现了刚才的画面,有一半是黑色的,那怎么办呢?
如果你只是换背景的颜色的话,可以直接指定android:cacheColorHint为你所要的颜色,如果你是用图片做背景的话,那也只要将android:cacheColorHint指定为透明(#00000000)就可以了,当然为了美化是要牺牲一些效率的。
由于我们使用的好友列表向比较复杂,一个ImageView两个TextView.,所以要自定义adapter.下面的TextView是我自己创建的TextView为了实现昵称和个性签名的滚动效果。由于占用资源太多 不推荐所有人的昵称和个性签名都滚动哦,只要获得焦点的滚动就好了。我就不改了 交给你了
MyTextView.class
package com.example.friendlist.mytextview;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
public class MyTextView extends TextView{
public MyTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public MyTextView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
//一直return true
@Override
public boolean isFocused() {
// TODO Auto-generated method stub
return true;
}
}
自定义adapter引用的布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".FirendListActivity" > <ImageView android:id="@+id/iv_picture" android:layout_alignParentLeft="true" android:layout_width="60dp" android:layout_height="60dp" android:src="@drawable/pic1" /> <com.example.friendlist.mytextview.MyTextView android:id="@+id/tv_nickname" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/iv_picture" android:maxEms="4" android:singleLine="true" android:ellipsize="marquee" android:layout_centerInParent="true" /> <com.example.friendlist.mytextview.MyTextView android:id="@+id/tv_description" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerInParent="true" android:maxEms="8" android:singleLine="true" android:ellipsize="marquee" /> </RelativeLayout>
自定义adapter代码
Myadapter.class
package com.example.friendlist.MyAdapter;
import java.util.List;
import com.example.friendlist.R;
import com.example.friendlist.peopleInformation.People_information;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView.FindListener;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class MyAdapter extends BaseAdapter{
private List<People_information> mData;
private Context context;
public void setmData(List mData) {
this.mData = mData;
}
public void setContext(Context context) {
this.context = context;
}
//决定了列表item显示的个数
@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}
//根据position获取对应item的内容
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return mData.get(position);
}
//获取对应position的item的ID
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
//创建列表item视图
@Override
public View getView(int position, View convertView, ViewGroup arg2) {
// TODO Auto-generated method stub
View view=View.inflate(context, R.layout.item_fridends, null);
//获取item对应的数据对象
People_information people=mData.get(position);
//初始化view
ImageView iv_picture=(ImageView) view.findViewById(R.id.iv_picture);
TextView tv_nickname=(TextView) view.findViewById(R.id.tv_nickname);
TextView tv_description=(TextView) view.findViewById(R.id.tv_description);
//绑定数据到view
iv_picture.setImageResource(people.getDraw_Id());
tv_nickname.setText(people.getNickname());
tv_description.setText(people.getDescription());
return view;
}
}
我创建了一个个人信息的对象包括头像和昵称,个性签名,为了在加入List里面方便
package com.example.friendlist.peopleInformation;
public class People_information {
private int draw_Id;
private String nickname;
private String description;
public int getDraw_Id() {
return draw_Id;
}
public void setDraw_Id(int draw_Id) {
this.draw_Id = draw_Id;
}
public String getNickname() {
return nickname;
}
public void setNickname(String nickname) {
this.nickname = nickname;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
然后就是MainActivity.class了,我把所有人的头像信息,昵称 个性签名都保存在了数组里面。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# android实现好友列表
# android实现qq好友列表
# android实现微信好友列表
# 自定义
# 个性签名
# 当你
# 我把
# 我就
# 如果你
# 在这里
# 是因为
# 成了
# 太多
# 你是
# 为你
# 很多人
# 请你
# 用了
# 很简单
# 你了
# 可以直接
# 我为
# 使他
相关文章:
建站之星如何开启自定义404页面避免用户流失?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
西安大型网站制作公司,西安招聘网站最好的是哪个?
山东云建站价格为何差异显著?
如何在阿里云部署织梦网站?
高性价比服务器租赁——企业级配置与24小时运维服务
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
江苏网站制作公司有哪些,江苏书法考级官方网站?
Java解压缩zip - 解压缩多个文件或文件夹实例
制作充值网站的软件,做人力招聘为什么要自己交端口钱?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
网站按钮制作软件,如何实现网页中按钮的自动点击?
常州自助建站:操作简便模板丰富,企业个人快速搭建网站
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
如何在云主机快速搭建网站站点?
如何快速查询域名建站关键信息?
如何使用Golang安装API文档生成工具_快速生成接口文档
历史网站制作软件,华为如何找回被删除的网站?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何生成腾讯云建站专用兑换码?
模具网站制作流程,如何找模具客户?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
购物网站制作公司有哪些,哪个购物网站比较好?
建站DNS解析失败?如何正确配置域名服务器?
表情包在线制作网站免费,表情包怎么弄?
如何零成本快速生成个人自助网站?
如何选择域名并搭建高效网站?
如何通过wdcp面板快速创建网站?
贸易公司网站制作流程,出口贸易网站设计怎么做?
Python如何创建带属性的XML节点
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站之星后台密码如何安全设置与找回?
如何在服务器上三步完成建站并提升流量?
如何用IIS7快速搭建并优化网站站点?
如何快速生成凡客建站的专业级图册?
如何在腾讯云免费申请建站?
linux top下的 minerd 木马清除方法
如何实现建站之星域名转发设置?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
如何将凡科建站内容保存为本地文件?
如何用PHP快速搭建CMS系统?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何在七牛云存储上搭建网站并设置自定义域名?
婚礼视频制作网站,学习*后期制作的网站有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。