`
hunxiejun
  • 浏览: 1148586 次
文章分类
社区版块
存档分类
最新评论

android 完美的ListView实现【原创】

 
阅读更多
标签:自定义ListViw,android,
本文介绍如何自定义ListViw和设置ListView的样式。
转载请注明:QQ:273733055 ppwuyi@sohu.com 来源于http://hi.baidu.com/adnroidorg/home
工程图:

转载请注明:QQ:273733055 ppwuyi@sohu.com 来源于http://hi.baidu.com/adnroidorg/home
下图为初始的界面,下面我们就对他进行彻底的美化。


(效果图一)
上代码:
主布局文件:main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:ppwuyi="http://schemas.ppwuyi.com/apk/res/android"
ppwuyi:orientation="vertical" ppwuyi:layout_width="fill_parent"
ppwuyi:layout_height="fill_parent" ppwuyi:background="@drawable/bg">
<TextView ppwuyi:layout_width="fill_parent"
ppwuyi:layout_height="wrap_content" ppwuyi:text="@string/testList" />
<ListView ppwuyi:layout_width="fill_parent"
ppwuyi:layout_height="wrap_content" ppwuyi:id="@+id/listviews" />
</LinearLayout>

ListItem布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:ppwuyi="http://schemas.ppwuyi.com/apk/res/android"
ppwuyi:orientation="vertical" ppwuyi:layout_width="wrap_content"
ppwuyi:layout_height="wrap_content" ppwuyi:background="@drawable/itembg" >
<ImageView ppwuyi:layout_width="35dip" ppwuyi:layout_alignParentTop="true" ppwuyi:layout_alignParentLeft="true" ppwuyi:paddingLeft="4dip"
ppwuyi:layout_height="35dip" ppwuyi:id="@+id/avatar" ppwuyi:src="@drawable/icon"/>
<TextView ppwuyi:layout_width="wrap_content" ppwuyi:layout_alignParentTop="true" ppwuyi:layout_toRightOf="@+id/avatar" ppwuyi:paddingTop="10dip"
ppwuyi:layout_height="wrap_content" ppwuyi:id="@+id/username" ppwuyi:text="dsadsadsadsa"/>
<TextView ppwuyi:layout_width="wrap_content" ppwuyi:layout_below="@+id/avatar" ppwuyi:layout_alignParentLeft="true" ppwuyi:paddingLeft="4dip"
ppwuyi:layout_height="wrap_content" ppwuyi:id="@+id/description" ppwuyi:text="dsadsadsadsa" />
</RelativeLayout>

主文件代码:ListModeActivty.class
转载请注明:QQ:273733055 ppwuyi@sohu.com 来源于http://hi.baidu.com/adnroidorg/home
/* */
* **
* __ __ __ __ __ __ __ _____ **
** | | | | | | / / / / / / / / |_ _| **
** | | | | | | / / / / / /___/ / | | **
** | |__| |___| | / /____/ / /_ _/ | | @author: jun2.wu@symbio.com ppwuyi@sohu.com **
** |____________| /__________/ | | _| |_ @version: 2010-07-25 下午05:43:35 **
/* |_| |_____| */

package com.symbio.test.ui;

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

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;

import com.symbio.test.adapter.ListModeAdapter;
import com.symbio.test.beans.People;
/***
* 实现list的自定义样式
*
* @author jun2.wu@symbio.com ppwuyi@sohu.com
*
*/
public class ListModeActivity extends Activity {
private static final String TAG=ListModeActivity.class.getName();
private ListView listviews;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.v(TAG,"onCreate .......");
InitView();
}

/***
* 初始化布局属性
*/
private void InitView() {
listviews = (ListView) findViewById(R.id.listviews);
List<People> listPeople = new ArrayList<People>(20);
ListModeAdapter mAdapter =new ListModeAdapter(this);
//-----------模拟一点数据哈哈----------------
for(int i=0;i<10;i++){
People p = new People();
p.username="ppwuyi"+i;
p.description ="this list";
p.avatar = R.drawable.icon;
listPeople.add(p);
}
mAdapter.setListBeans(listPeople);
listviews.setAdapter(mAdapter);

}

@Override
protected void onDestroy() {
Log.v(TAG,"onDestroy .......");
super.onDestroy();
}

@Override
protected void onPause() {
Log.v(TAG,"onPause .......");
super.onPause();
}

@Override
protected void onRestart() {
Log.v(TAG,"onRestart .......");
super.onRestart();
}
转载请注明:QQ:273733055 ppwuyi@sohu.com 来源于http://hi.baidu.com/adnroidorg/home
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
Log.v(TAG,"onRestoreInstanceState .......");
super.onRestoreInstanceState(savedInstanceState);
}

@Override
protected void onResume() {
Log.v(TAG,"onResume .......");
super.onResume();
}

@Override
protected void onStart() {
Log.v(TAG,"onStart .......");
super.onStart();
}

@Override
protected void onStop() {
Log.v(TAG,"onStop .......");
super.onStop();
}


}
其他的文件都是简单的就不上传代码了哈。
问题出来了:滑动ListView出现黑色的背景如下图

解决方法:在ListView布局文件中添加
android:dividerHeight="1px" //每个item间隔 1px
android:divider="#00000000" //间隔区的颜色为白色透明度为0
android:cacheColorHint="#00000000" //滑动ListView的颜色为 白色透明度为0
这样就解决了,但是新的问题来了我想改变一下,当用户按下某一Item时的背景色,见下图

解决方法:在ListView布局文件中添加 android:listSelector="@drawable/twitteritemmainbg" //当选中时屏蔽黄色背景(非常讨厌是不)
效果图如下:

还有跟多关于android的秘密就在:
转载请注明:QQ:273733055 ppwuyi@sohu.com 来源于http://hi.baidu.com/adnroidorg/home

分享到:
评论

相关推荐

    源码 Android重写listview实现下拉刷新.rar

    免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累... 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,本人不对所涉及的版权问题或内容负法律责任。如有侵权,请举报或通知本人删除。

    【原创】android 实现气泡式listview

    NULL 博文链接:https://ericchan2012.iteye.com/blog/1560826

    安卓Android Studio 控件之 卡片式ListView效果

    版权声明:本文为CSDN博主「jackiesky1206」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/jackiesky1206/article/details/120214118

    android treeView实现资源文件

    1. 原创代码 2. 基于listView的treeView显示,支持动态增加和删除

    android开发资料大全

    android用户界面之ListView教程实例汇 android用户界面之Toast教程实例汇 android用户界面之AlarmManager教程实例汇 android用户界面详尽教程实例 android用户界面之Widget教程实例汇总 android用户界面之TabHost...

    android 实现右上角PopupWindow弹出

    右上角的PopupWindow弹出,类似QQ的设置,已listview的方式展开。原创,刚刚开发的,在网上找了好久没都有自己想要的效果,所以自己开发个简单的。

    android-fat-listview:Android扩展ListView:具有上拉刷新、下拉加载更多、具有Section Header

    fat-listview Overview ...主要实现下面的功能: 下拉刷新功能 上拉加载更多功能 类似iOS UITableView的Section Header功能 代码并非原创,多数代码来自: 的项目: 的项目: 开发工具:Android Studio

    Android 类似QQ微信WebView的上拉下拉弹跳效果

    感谢作者HomhomLin分享,支持原创请访问...SlidingLayout完美兼容Android自带库和兼容库的所有View组件,包括RecyclerView、ListView、ScrollView以及WebView等等。 SlidingLayout简单易用,最低支持Android api v9。

    安卓开发入门基础之使用adapter实现对Listview的点击效果

    总体是垂直的线性布局,并且需要加上android:descendantFocusability=”blocksDescendants”来夺取焦点 主要为了实现点击list内的每一项以及点击按钮都有不同的反应 里面放一个textview做标题,一个listview即可 bg....

    Android实训实习报告总结.docx

    android入门后,只会照着别人的葫芦来画瓢,即没有设计思想,也没有自主原创的代码,不好不好 于是乎,进了公司跟着项目走,用项目来驱动自己去学习和提高 公司是1+1开发模式,即1个美工 + 1个工程师,负责完成一个...

Global site tag (gtag.js) - Google Analytics