Android MaoZhuaWeiBo Adapter ListView优化及发送微博 - 4

这一篇主要给大家说说Adapter ListView优化及发送微博,我们都知道Android在一些比较耗内存的类里,为了尽量避免浪费内

存,我们需要对我们的组件之类的进行优化,使其节约不必要的资源浪费

自定义适配器:

package com.neweriweibo.adapter;
/**
 * 适配器
 * @author Engineer-Jsp
 * @date 2014.10.28
 * */
import java.util.ArrayList;

import com.neweriweibo.R;
import com.neweriweibo.model.UserWeiBiInfo;
import com.squareup.picasso.Picasso;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class MessageAdapter extends BaseAdapter {  

	private Context mContext ;
	private ArrayList<UserWeiBiInfo> mresult ;
	private LayoutInflater layoutinflater;

	public MessageAdapter(Context context, ArrayList<UserWeiBiInfo> result) {
		mContext = context ;
		mresult = result ;
		layoutinflater = LayoutInflater.from(mContext);
	}

	@Override
	public int getCount() {
		return mresult.size();
	}

	@Override
	public Object getItem(int position) {
		return mresult.get(position);
	}

	@Override
	public long getItemId(int position) {
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		ViewHolder holder ;
		View view = convertView ;
		if(view == null){
			holder = new ViewHolder() ;
			view =  layoutinflater.inflate(R.layout.message_list_item, null) ;
			holder.tvName = (TextView)view.findViewById(R.id.m_tv_username) ;
			holder.tvMessage = (TextView)view.findViewById(R.id.m_tv_message) ;
			holder.headimg = (ImageView)view.findViewById(R.id.weibo_item_icon);

			view.setTag(holder) ;

		}else{
			holder = (ViewHolder) view.getTag() ;
		}
		Log.d("微博好友消息-用户名测试:", mresult.get(position).getName());
		holder.tvName.setText(mresult.get(position).getName());
		Log.d("微博好友消息-内容测试:", mresult.get(position).getOrigtext());
		holder.tvMessage.setText(mresult.get(position).getOrigtext());
		Log.d("微博好友消息-头像地址测试:", mresult.get(position).getHeadimg());
		Picasso.with(view.getContext().getApplicationContext()).load(mresult.get(position).getHeadimg()).into(holder.headimg);
		return view;
	}

	static class  ViewHolder{
		TextView tvName ;
		TextView tvMessage ;
		ImageView headimg;
	}

}

ViewHolder 就是ListView优化办法之一,屡试不爽

发送消息界面:
<img src="http://img.blog.csdn.net/20141104025947645?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanNwcGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

目前只带文本发送功能,表情包都在源代码里有,有兴趣的,可以继续开发,下面提供源码学习下载地址:

地址:<a target=_blank href="http://download.csdn.net/detail/jspping/8117425" target="_blank">http://download.csdn.net/detail/jspping/8117425</a><strong><span style="font-size:14px;color:#ff0000;"></span></strong><pre name="code" class="java">
OK,东西又不是很多,关键是掌握方法
				
时间: 2024-07-31 14:25:55

Android MaoZhuaWeiBo Adapter ListView优化及发送微博 - 4的相关文章

【Android UI】ListView的使用和简单优化

ListView是每个app中都要使用的,所以今天我来总结下ListView的使用和一些简单的优化. 先看下运行效果: 一.创建数据库 为了模拟数据,这里将数据保存数据库中,顺便复习一下SQLite的知识,将数据保存到数据库的好处就是很容易模拟网络请求的延迟. 1.创建数据库打开帮助类BlackNumberDBOpenHelper,它继承自SQLiteOpenHelper package com.yzx.listviewdemo.db; import android.content.Contex

Android小白的成长之路-ListView优化提案

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能. 本文的重点即是从如下几个方面介绍如何对ListView进行优化. 1.convertView重用 利用好 convertView 来重用 View,切忌每次 getView() 都新建.ListView 的核心原理就是重用 View,如果重用 view 不改变宽高,重用V

Android 常驻与很驻型广播的差别,及ListView优化,Android新手基本知识巩固

1.常驻型广播 常驻型广播,当你的应用程序关闭了,假设有广播信息来,你写的广播接收器相同的能接受到. 他的注冊方式就是在你的应用程序中的AndroidManifast.xml进行注冊. 通常说这样的方式是静态注冊 以下是配置样例 2<receiver android:name=".widget.DeskWidgeWeather"> 3<meta-data android:name="android.appwidget.provider" andro

Android之史上最强ListView优化方案

在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能. 本文的重点即是从如下几个方面介绍如何对ListView进行优化. 1.convertView重用 Android SDK中这样讲: the old view to reuse, if possible. Note: You should check that this v

由浅入深讲解android开发中listview的性能优化

ListView是一种可以显示一系列项目并能进行滚动显示的View.在每行里,既可以是简单的文本,也可以是复杂的结构.一般情况下,你都需要保证ListView运行得很好(即:渲染更快,滚动流畅).在接下来的内容里,我将就ListView的使用,向大家提供几种解决不同性能问题的解决方案. 如果你想使用ListView,你就不得不使用ListAdapter来显示内容.SDK中,已经有了几种简单实现的Adapter: ·         ArrayAdapter<T> (显示数组对象,使用toStr

Android 学习笔记之十 Listview 优化原理

听到这,大家觉得应该是再熟悉不过了吧,当然或许很多人已经知道 ListView 的优化.我在这里就再详细的讲一遍.顺便让ListView分类显示. 之前咋网上仿照别人写过一个,但是不知道原理, 今天看到了一篇写的不错,收藏了. 先来看看效果: 可以看到数据有100个(0-99),奇数和偶数分类显示,并给每类数据加了一个头 这里写图片描述 可以看到数据有100个(0-99),奇数和偶数分类显示,并给每类数据加了一个头 步骤: ①在布局文件中添加ListView组件 <RelativeLayout

Android进阶:ListView性能优化异步加载图片 使滑动效果流畅

ListView 是一种可以显示一系列项目并能进行滚动显示的 View,每一行的Item可能包含复杂的结构,可能会从网络上获取icon等的一些图标信息,就现在的网络速度要想保持ListView运行的很好滚动流畅是做不到的 所以这里就需要把这些信息利用多线程实现异步加载 实现这样功能的类 [java] view plaincopy public class AsyncImageLoader { private HashMap<String, SoftReference<Drawable>&

Android 常驻与非常驻型广播的区别,及ListView优化,Android新手基本知识巩固

1.常驻型广播 常驻型广播,当你的应用程序关闭了,如果有广播信息来,你写的广播接收器同样的能接受到, 他的注册方式就是在你的应用程序中的AndroidManifast.xml进行注册.通常说这种方式是静态注册 下面是配置例子 2<receiver android:name=".widget.DeskWidgeWeather"> 3<meta-data android:name="android.appwidget.provider" android

【Android UI】ListView系列二(自定义Adapter订阅新闻栏目)

目标:自定义适配器Adapter实现点击每个item订阅按钮 上一篇介绍了listview的基本属性以及ArrayAdapter和SimpleAdapter的简单实用,链接:listview使用方式基础篇. 今天主要介绍一下自定义adapter,来实现稍微复杂点的功能,今天实现的效果是:类似于listiew展示许多可供订阅的栏目,每个栏目最右端有订阅按钮,用户点击订阅可以订阅该栏目,再次点击可取消订阅,效果图如下,下面我们一步步来实现. 1. 定义主布局文件activity_main.xml 主