欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android中使用listview實(shí)現(xiàn)qq/微信好友列表

 更新時(shí)間:2017年04月05日 11:14:26   作者:甄情  
本文主要介紹了android中使用listview實(shí)現(xiàn)qq/微信好友列表(頭像,昵稱(chēng),個(gè)性簽名)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧

首先附上運(yùn)行結(jié)果:

如果你沒(méi)有學(xué)過(guò)listview請(qǐng)你先看一看基本知識(shí)。不想再說(shuō)的那么細(xì)了 太多了。

首先是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> 

在這里我為什么這樣設(shè)置

android:cacheColorHint="#00000000" 
android:background="@drawable/back" 

在Android中,ListView是最常用的一個(gè)控件,在做UI設(shè)計(jì)的時(shí)候,很多人希望能夠改變一下它的背景,使他能夠符合整體的UI設(shè)計(jì),改變背景背很簡(jiǎn)單只需要準(zhǔn)備一張圖片然后指定屬性android:background="@drawable/bg",不過(guò)不要高興地太早,當(dāng)你這么做以后,發(fā)現(xiàn)背景是變了,但是當(dāng)你拖動(dòng),或者點(diǎn)擊list空白位置的時(shí)候發(fā)現(xiàn)ListItem都變成黑色的了。

這是什么原因?qū)е碌哪??起初我以為是因?yàn)槲野驯尘霸O(shè)置成了白色,然后產(chǎn)生色差導(dǎo)致的,后來(lái)查閱資料發(fā)現(xiàn),其實(shí)這個(gè)要從Listview的效果說(shuō)起,默認(rèn)的ListItem背景是透明的,而ListView的背景是固定不變的,所以在滾動(dòng)條滾動(dòng)的過(guò)程中如果實(shí)時(shí)地去將當(dāng)前每個(gè)Item的顯示內(nèi)容跟背景進(jìn)行混合運(yùn)算,所以android系統(tǒng)為了優(yōu)化這個(gè)過(guò)程用,就使用了一個(gè)叫做android:cacheColorHint的屬性,在黑色主題下默認(rèn)的顏色值是#191919,所以就出現(xiàn)了剛才的畫(huà)面,有一半是黑色的,那怎么辦呢?

如果你只是換背景的顏色的話(huà),可以直接指定android:cacheColorHint為你所要的顏色,如果你是用圖片做背景的話(huà),那也只要將android:cacheColorHint指定為透明(#00000000)就可以了,當(dāng)然為了美化是要犧牲一些效率的。

由于我們使用的好友列表向比較復(fù)雜,一個(gè)ImageView兩個(gè)TextView.,所以要自定義adapter.下面的TextView是我自己創(chuàng)建的TextView為了實(shí)現(xiàn)昵稱(chēng)和個(gè)性簽名的滾動(dòng)效果。由于占用資源太多 不推薦所有人的昵稱(chēng)和個(gè)性簽名都滾動(dòng)哦,只要獲得焦點(diǎn)的滾動(dòng)就好了。我就不改了 交給你了

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顯示的個(gè)數(shù) 
 @Override 
 public int getCount() { 
 // TODO Auto-generated method stub 
 return mData.size(); 
 } 
 //根據(jù)position獲取對(duì)應(yīng)item的內(nèi)容 
 @Override 
 public Object getItem(int position) { 
 // TODO Auto-generated method stub 
 return mData.get(position); 
 } 
 //獲取對(duì)應(yīng)position的item的ID 
 @Override 
 public long getItemId(int position) { 
 // TODO Auto-generated method stub 
 return position; 
 } 
 //創(chuàng)建列表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對(duì)應(yīng)的數(shù)據(jù)對(duì)象 
 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); 
 //綁定數(shù)據(jù)到view 
 iv_picture.setImageResource(people.getDraw_Id()); 
 tv_nickname.setText(people.getNickname()); 
 tv_description.setText(people.getDescription()); 
 return view; 
 } 
} 

我創(chuàng)建了一個(gè)個(gè)人信息的對(duì)象包括頭像和昵稱(chēng),個(gè)性簽名,為了在加入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了,我把所有人的頭像信息,昵稱(chēng) 個(gè)性簽名都保存在了數(shù)組里面。

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

最新評(píng)論