• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android:listview实现qq,微信好友列表(头像,昵称,个性签名)

android:listview实现qq,微信好友列表(头像,昵称,个性签名)

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android listview,android listview优化,android listview属性,android listview刷新,android listview单选等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android:listview实现qq,微信好友列表(头像,昵称,个性签名)


首先附上运行结果:

\

如果你没有学过listview请你先看一看基本知识。不想再说的那么细了 太多了。

首先是listview布局

 

<!--{cke_protected}{C}%3C!%2D%2D%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%2D%2D%3E-->
<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">

</com.example.friendlist.mytextview.mytextview></com.example.friendlist.mytextview.mytextview></imageview></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 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了,我把所有人的头像信息,昵称 个性签名都保存在了数组里面。
package com.example.friendlist;

import java.util.ArrayList;
import java.util.List;

import com.example.friendlist.MyAdapter.MyAdapter;
import com.example.friendlist.peopleInformation.People_information;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import and



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android UI:ListView,androiduilistview
  • Android UI ListView的使用,androidlistview
  • Listview详解,listview
  • Android—自定义控件实现ListView下拉刷新,androidlistview
  • Android一个ListView列表之中插入两种不同的数据,androidlistview
  • 保持listview当前位置,listview当前位置
  • Android 大杂烩工程之ListView的开发2以及数据仓库开发模式
  • Android新手入门2016(8)--ListView之ArrayAdapter
  • Android下拉刷新上拉加载更多的扩展ListView
  • 提升Android ListView性能的几个技巧

相关文章

  • 2017-05-26Activity被回收导致fragment的getActivity为空,fragmentgetactivity
  • 2017-05-26仿微信底部TAG完美渐变,tag渐变
  • 2017-05-26自定义图片轮播,简单就是好用,自定义图片轮播
  • 2017-05-26android 获取GPS定位,androidgps定位
  • 2017-05-26Android--Activity在跳转时携带数据
  • 2017-05-26Android Studio创建/打开项目时一直处于Building“project name”Gradle project info的解决办法,androidgradle
  • 2017-05-26Android常见问题集锦
  • 2017-07-22Android性能优化
  • 2017-05-26源码解析Android中AsyncTask的工作原理
  • 2017-05-26安卓高级组件-----进度条,安卓-----进度条

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android-ViewPager的使用
    • easy touch利用playmaker拖动ngui对象
    • Android Scroll详解(一):基础知识
    • Android Fragment生命周期,androidfragment
    • 【Android基础】Activity启动模式以及Intent Flags 与 栈 的全面解析
    • Android Activity的生命周期简单总结
    • Android关于Dex拆分(MultiDex)技术的解析
    • 再见NullPointerException。在Kotlin里null的处理(KAD 19),kotlinnull
    • Android之RecyclerView的原生Bug-Inconsistency detected. Invalid view holder adapter positionViewHolder{a1bbfa3 position=2 id=-1, oldPos=-1, pLpos:-1 no parent},recyclerviewholder
    • android eclipse关联源码,以及源码(代码)以及jar查看软件,androideclipse

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有