国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

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

2019-12-12 03:11:22
字體:
來源:轉載
供稿:網(wǎng)友

首先附上運行結果:

如果你沒有學過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",不過不要高興地太早,當你這么做以后,發(fā)現(xiàn)背景是變了,但是當你拖動,或者點擊list空白位置的時候發(fā)現(xiàn)ListItem都變成黑色的了,破壞了整體效果。

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

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

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

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顯示的個數(shù)  @Override  public int getCount() {  // TODO Auto-generated method stub  return mData.size();  }  //根據(jù)position獲取對應item的內(nèi)容  @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;  }  //創(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對應的數(shù)據(jù)對象  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)建了一個個人信息的對象包括頭像和昵稱,個性簽名,為了在加入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了,我把所有人的頭像信息,昵稱 個性簽名都保存在了數(shù)組里面。

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 android.widget.ListView; import android.widget.Toast; public class FirendListActivity extends Activity {  private int id[]={R.drawable.pic1,R.drawable.pic2,R.drawable.pic3,R.drawable.pic4  ,R.drawable.pic5,R.drawable.pic6,R.drawable.pic7,R.drawable.pic8,R.drawable.pic9};  private String nickName[]={"寧靜","白衣未央","蘇染","浮生物語","沫去丶","要想成功必須強大","你是病毒我卻不忍用360",  "超級無敵噼里啪啦大boss","止不住那流逝的年華"};  private String description[]={"我的人生只是一道直線,轉彎就是因為想遇見你","時間,讓深的東西越來越深,讓淺的東西越來越淺。","弱水三千,我只取一勺,可是到最后我悲慘的發(fā)現(xiàn)我的居然是漏勺。",  "口上說著釋然的人最終心里會疼痛到不能言語","我多想帶你去看看以前還沒愛上你的我","知道雪為什么是白色嗎 因為它忘記了自己曾經(jīng)的顏色",  "好想轟轟烈烈愛她一遍,好想平平淡淡陪他一生","Say bye bye to my love !","只有在他無聊沒人玩寂寞空虛的時候才會過來和你說幾句話"  };  private ListView lv_view;  private MyAdapter myAdapter;  @Override  protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.view_listview);  lv_view=(ListView) findViewById(R.id.lv_view);  myAdapter=new MyAdapter();  myAdapter.setContext(this);  myAdapter.setmData(getList());  lv_view.setAdapter(myAdapter);  lv_view.setOnItemClickListener(new OnItemClickListener() {  @Override  public void onItemClick(AdapterView<?> arg0, View arg1, int position,   long arg3) {  // TODO Auto-generated method stub  People_information people=(People_information) myAdapter.getItem(position);  Toast.makeText(FirendListActivity.this, "昵稱:"+people.getNickname()+"/n個性簽名:"+people.getDescription(), 0).show();  }  });  }  private List<People_information> getList() {  List <People_information>list=new ArrayList<People_information>();  for(int i=0;i<id.length;i++){  People_information people=new People_information();  people.setDraw_Id(id[i]);  people.setDescription(description[i]);  people.setNickname(nickName[i]);  list.add(people);  }  return list;  } } 

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 瓮安县| 南皮县| 松桃| 阳春市| 基隆市| 井研县| 英吉沙县| 南川市| 格尔木市| 芮城县| 民勤县| 历史| 贵港市| 自治县| 阿荣旗| 宁国市| 云霄县| 梓潼县| 江西省| 桓台县| 合水县| 易门县| 平武县| 林口县| 依安县| 修文县| 南华县| 灵山县| 峨山| 秦皇岛市| 两当县| 曲靖市| 满洲里市| 涞水县| 文安县| 西乡县| 黄石市| 汝城县| 宜宾县| 河间市| 灯塔市|