Android杂谈--ListView之BaseAdapter的使用二(转)
实例二:Gallery上应用BaseAdapter
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/img"
android:layout_width="480px"
android:layout_height="480px"
android:layout_gravity="center"
/>
<Gallery
android:id="@+id/gallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:spacing="3dp"
android:layout_gravity="bottom"
/>
</LinearLayout>
Activity:这部分里的getView没有优化,调试了很久还没调通,暂时还是用的最基本的方法。会专门找个时间把Gallery内存泄露的部分写一下,因为图片资源很多的时候会引起out of memory的错误
package com.loulijun.demo16;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class Demo16Activity extends Activity {
private Gallery mGallery;
private ImageView mImg;
//图片数组
private int[] pics = {
R.drawable.pic1,
R.drawable.pic2,
R.drawable.pic3,
R.drawable.pic4,
R.drawable.pic5,
R.drawable.pic6
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mImg = (ImageView)findViewById(R.id.img);
mGallery = (Gallery)findViewById(R.id.gallery);
MyAdapter adapter = new MyAdapter(this);
mGallery.setAdapter(adapter);
mGallery.setOnItemClickListener(new Gallery.OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position,
long arg3) {
mImg.setImageResource(pics[position]);
}
});
}
//内部类
class MyAdapter extends BaseAdapter
{
//用来接收传递过来的Context上下文对象
private Context context;
//构造函数
public MyAdapter(Context context)
{
this.context = context;
}
@Override
public int getCount() {
//返回图片数组大小
return pics.length;
}
@Override
public Object getItem(int position) {
//根据选中项返回索引位置
return position;
}
@Override
public long getItemId(int position) {
//根据选中项id返回索引位置
return position;
}
//未优化的getView,这部分可以使用recycle()释放内存、或者BitmapFacotry.Options缩小,或者软引用,或者控制图片资源大小等等很多方法,找时间专门写
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView img = new ImageView(context);
img.setAdjustViewBounds(true);
img.setImageResource(pics[position]);
img.setScaleType(ImageView.ScaleType.FIT_XY);
img.setLayoutParams(new Gallery.LayoutParams(120,120));
return img;
}
}
}
运行效果:原理都是一样,只不过是布局加载的时候会有区别,不过就这个小区别也让人够恼火的了
转载于:https://www.cnblogs.com/zwenwen/archive/2012/02/10/2345660.html
Android杂谈--ListView之BaseAdapter的使用二(转)相关推荐
- Android杂谈--ListView之BaseAdapter的使用
Android杂谈--ListView之BaseAdapter的使用 前言 话说开发用了各种Adapter之后感觉用的最舒服的还是BaseAdapter,尽管使用起来比其他适配器有些麻烦,但是使用它却 ...
- Android杂谈--ListView之BaseAdapter的使用一(转)
BaseAdapter是直接继承自接口类Adapter的,使用BaseAdapter时需要重写很多方法 BaseAdapter与其他Adapter有些不一样,其他的Adapter可以直接在其 ...
- Android杂谈--ListView之SimpleAdapter的使用
Android杂谈--ListView之SimpleAdapter的使用 SimpleAdapter SimpleAdapter是扩展性最好的适配器,可以定义各种你想要的布局,而且使用很方便 Simp ...
- Android杂谈--ListView之ArrayAdapter的使用
Android杂谈--ListView之ArrayAdapter的使用 ArrayAdapter 总是感觉写自己的博客才更能够学到东西,网上尽管有很多好的资料,但是参差不齐,需要浪费大量时间才能够找到 ...
- android 自定义baseadapter listview,android之ListView和BaseAdapter的组合使用
BaseAdapter是基本适配器,功能强大,凡是能用ArrayAdapter和SimpleAdapter解决的,都可以使用BaseAdapter解决. BaseAdapter是一个抽象类,所以需要自 ...
- android的listview+BaseAdapter的例子
准备一个listview的xml,绑定到activity里面的listView的变量 准备一个继承自BaseAdapter的的MyAdapter,构造函数里面传入一个datasource的array, ...
- [Android] ListView 实现隔行变色(二)
涉及知识点:ListView.SimpleAdapter和ListView点击事件等 文章目录 一.运行图 二.代码 文章内容 一.运行图 运行效果: 二.代码 1.activity_main.xml ...
- Android Listview 自定义BaseAdapter的实现及Listview优化示例
上一篇文章中我们讲了Android Listview SimpleAdapter的使用完整示例(实现用户列表)_左眼看成爱的博客-CSDN博客 本示例实现的效果图: 每个item中的checkbox选 ...
- Android关于ListView的使用(二)
我们上次实现了列表中放置内容,类似于这个界面: 但是如何给里面添加资源那,如何控制它显示几列那,如何让他显示网络数据那,这都是要思考的. 我们上次在代码中实现列表的内容的,但是你看今日头条这个图片,他 ...
最新文章
- 【运筹学】线性规划 人工变量法 ( 人工变量法案例 | 初始单纯形表 | 检验数计算 | 入基变量 | 出基变量 )
- linux下多线程实现服务端
- Leetcode 415. 字符串相加 (每日一题 20210826 同类型题)
- Spark Streaming初步使用以及工作原理详解
- JZOJ 5618. 【NOI2018模拟3.31】华胥梦天
- android 文件 c语言 jni,Android jni 调用的so文件一个函数的反汇编 高手来看看
- java object数组转实体类_详解Java中String JSONObject JSONArray List实体类转换
- asp.net web开发步骤_Web 系统安全性测试之会话管理测试
- Rufus制作Ubuntu18.04启动盘并为Dell电脑重装系统
- c#中调用window的 wmi服务获取本机usb信息
- Python网速监控
- 软件信息安全杂志《Information Security》2011年11月期下载
- 数据库 “投毒”修复方案
- php上传文件至腾讯COS
- redis:Unable to connect to localhost:6379
- 前端三刺客---CSS
- JAVA要不要看源码_为什么要看源码、如何看源码,高手进阶必看
- 2018年全国高中数学联赛浙江省预赛
- ubuntu系统vim常用命令学习以及ubuntu软件下载安装
- iOS滚动的导航条(仿网易新闻)
热门文章
- InputStreamReader/OutputStreamWriter乱码问题解决
- Android实现版本更新提示
- Solr环境搭建及IK分词的集成及solrJ的调用(一)
- MySQL升级教程(CentOS)
- Foundations of Qt Development 学习笔记 Part1 Tips1-50
- 1.7-bzip2和bunzip2
- Ubuntu12.04 安装 mongodb
- 练习5.1更新——四则运算 测试与封装
- 用HAproxy+keepalived+mysql Replication 构建基于企业级负载均衡
- BESR备份还原SERVER 2003域控制器