Android GridView LruCache】的更多相关文章

照片墙这种功能现在应该算是挺常见了,在很多应用中你都可以经常看到照片墙的身影.它的设计思路其实也非常简单,用一个GridView控件当作“墙”,然后随着GridView的滚动将一张张照片贴在“墙”上,这些照片可以是手机本地中存储的,也可以是从网上下载的.制作类似于这种的功能的应用,有一个非常重要的问题需要考虑,就是图片资源何时应该释放.因为随着GridView的滚动,加载的图片可能会越来越多,如果没有一种合理的机制对图片进行释放,那么当图片达到一定上限时,程序就必然会崩溃. 今天我们照片墙应用的…
加载图片,图片如果达到一定的上限,如果没有一种合理的机制对图片进行释放必然会引起程序的崩溃. 为了避免这种情况,我们可以使用Android中LruCache来缓存下载的图片,防止程序出现OOM.       打开activity_main.xml作为程序的主布局,加入如下代码:       <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="h…
Android API中文文档GridView http://www.apkbus.com/android-14131-1-1.html   Android API 中文 (15) —— GridView http://www.apkbus.com/android-18326-1-1.html   android用户界面之GridView教程实例汇总 http://www.apkbus.com/android-51442-1-1.html GridView组件 http://www.apkbus…
A reference that is cleared when its referent is not strongly reachable and there is memory pressure. Avoid Soft References for Caching In practice, soft references are inefficient for caching. The runtime doesn't have enough information on which ref…
值得一提的另一个类是android.util.LruCache<K, V>,这个类是Android 3.1(代号 Honeycomb MR1)引入的,可以在创建时定义缓存的最大长度.另外,还可以通过覆写sizeof()方法改变每个缓存条目计算大小的方式.因为android.util.LruCache只能在Android 3.1及更高版本上使用,如果针对版本低于3.1的Android设备,则仍然必须使用不同的类来实现自己的应用缓存.由于目前的Android 3.1设备占有率不高,这种情况很有可能…
Android GridView增加HeaderView和FooterView的实现 做的项目中遇到一个问题,需要实现一个页面 页面的上面是一个自定义的View和GridView,当向下滚动屏幕的时候,需要确保两者一起滑动 之前没遇到过这种情况,直接按照心中的想法实现了,发现遇到问题了 “GridView只显示一行记录” 网上搜索之后发现很多人遇到过,也多贴出解决的方法 大概实现的方法有几种: 重载GridView的onMeasure()方法 使用google提供的HeaderGridView类…
dongyangzhang android gridview画分割线,如图: 1.先上图: 2.具体实现代码: public class LineGridView extends GridView { public LineGridView(Context context) { super(context); // TODO Auto-generated constructor stub } public LineGridView(Context context, AttributeSet at…
在你应用程序的UI界面加载一张图片是一件很简单的事情,但是当你需要在界面上加载一大堆图片的时候,情况就变得复杂起来.Android为我们提供了LruCache,今天我们就来学习这个缓存的知识以及原理. 目录导航 LruCache缓存的实例代码 LruCache缓存的原理分析 友情链接 LruCache缓存的实例代码 一. 我们建立一个简单的项目去体会LruCache的使用过程 通过http请求网络上的图片文件,然后保存在缓存中.显示图片时,先从缓存中取,如果没有,就发送请求向服务器取.项目结构如…
http://blog.csdn.net/yaphetzhao/article/details/50544105 参考上面的博客,关键代码我就贴出来吧: public void stopGridViewScroll(){ Field mFlingEndField = null; Method mFlingEndMethod; try { mFlingEndField = AbsListView.class.getDeclaredField("mFlingRunnable"); mFli…
在你应用程序的 UI 界面加载一张图片是一件很简单的事情,但是当你需要在界面上加载一大堆图片的时候,情况就变得复杂起来.在很多情况下,(比如使用 ListView, GridView 或者 ViewPager 这样的组件),屏幕上显示的图片可以通过滑动屏幕等事件不断地增加,最终导致 OOM.为了保证内存的使用始终维持在一个合理的范围,通常会把被移除屏幕的图片进行回收处理.此时垃圾回收器也会认为你不再持有这些图片的引用,从而对这些图片进行 GC 操作.用这种思路来解决问题是非常好的,可是为了能让程…
摘要:在你应用程序的UI界面加载一张图片是一件很简单的事情,但是当你需要在界面上加载一大堆图片的时候,情况就变得复杂起来. 使用图片缓存技术 在 你应用程序的UI界面加载一张图片是一件很简单的事情,但是当你需要在界面上加载一大堆图片的时候,情况就变得复杂起来.在很多情况下,(比如使用 ListView, GridView 或者 ViewPager 这样的组件),屏幕上显示的图片可以通过滑动屏幕等事件不断地增加,最终导致OOM. 为 了保证内存的使用始终维持在一个合理的范围,通常会把被移除屏幕的图…
Android中可以通过selector控制GridView Item 的状态,而省去使用代码控制 GridView View Selector Xml文件 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 选择状态 --> <i…
一.android:scrollbarStyle  决定状态条的位置     常用属性outsideOverlay,滚动条在最外层,gridview设置的padding在滚动条的内侧   二.android:stretchMode  决定怎么分配剩余的空间   spacingWidth      除去griditem和gridview的左右padding,剩余的空间totalSpace用中间的空余空间去扩充,这里的中间的分割空间总数n = columns - 1,这n个空间平分totalSpac…
1.先上图: 2.具体实现代码: public class LineGridView extends GridView { public LineGridView(Context context) { super(context); // TODO Auto-generated constructor stub } public LineGridView(Context context, AttributeSet attrs) { super(context, attrs); } public…
Android的GridView控件用于把一系列的空间组织成一个二维的网格显示出来应用的比较多的就是组合图片显示下面我就详细讲一个例子 首先写一个类继承BaseAdapter 1. Java代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54…
activity_test9的layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width=&…
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare…
在使用 GridView 网格布局时,默认情况下 GridView  是没有网格线的,但是有些时候我们需要让GridView显示分割线,怎么办呢?查了不少资料,找到了一种为GridView添加网格线的方法.实际上,该网格线是通过设置GridView各子项的间隔,并分别设置GridView背景色与子项背景色实现的. 实现方法 1.设置GridView背景色,设置水平间方向间隔属性值android:horizontalSpacing和竖直方向间隔属性值android:verticalSpacing…
<?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width="fill_parent" android:layout_height=&quo…
最近在做图片的浏览功能,开始是使用Gallery做,但是,达不到我想要的效果,关于使用Gallery显示缩略图的缺点和优点,不在详述了.以下是一个完整的Demo代码,注意我的模拟器是640*960. package com.treasure.ui; import android.app.Activity; import android.os.Bundle; import android.widget.GridView; import android.widget.LinearLayout; im…
经常有这样的需求,你的功能图标要像一个个物品,摆放在书架上,像这样: 我的思路比较简单,重载GridView,在他绘制子视图前,先把背景绘制完成 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 public class RowGridView extends GridView {     private static String NAMESPACE_ANDR…
GridView的一些特殊属性: 1.android:numColumns=”auto_fit”   //GridView的列数设置为自动 2.android:columnWidth=”90dp "       //每列的宽度,也就是Item的宽度 3.android:stretchMode=”columnWidth"//缩放与列宽大小同步 4.android:verticalSpacing=”10dp”          //两行之间的边距 5.android:horizontalS…
GridView(网格视图)是按照行和列的方式来显示内容的,一般用于显示图片等内容,比如实现九宫格图: 第一个例子: 实现代码为: MainActivity.java package com.xiaozhang.gridview2; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.…
最近一直忙着项目开发,有段时间没有写博文了,今天想跟大家分享的是长按gridview中的某一项显示删除图标,此时点击某项便可删除,再长按取消删除图标. gridview的布局文件如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id=…
GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选! <?xml version="1.0" encoding="utf-8"?> <GridView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/gridview" android:layout_width…
GridView用于在界面上按行.列分布的方式来显示多个组件. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools= "http://schemas.android.com/tools"     android:layout_width= "match_parent"     android:layout_heigh…
移动设备开发中,因为移动设备(手机等)的内存有限,所以使用有效的缓存技术是必要的.android提供来一个缓存工具类LruCache,开发中我们会经经常使用到,以下来他是怎样实现的. 在package android.util包里面有对LruCache定义的java文件.为了能准确的理解LruCache,我们先来看看原文的说明: * A cache that holds strong references to a limited number of values. Each time * a…
今天小研究了一下GridView,目的是为了实现 下面的效果(GridView多项选择): 首先,在布局文件添加GridView ,创建适配器的items... 具体的都在注释里边了,下面是 程序源码 片段,由于xml文件比较简单,故不在贴出. MainActivity.java package com.app.gridview; import android.os.Bundle; import android.app.Activity; import android.util.Log; imp…
模拟GridView控件: <GridView android:id="@+id/picture_grid" android:layout_width="match_parent" android:layout_height="match_parent" android:columnWidth="100dp" android:numColumns="auto_fit" android:gravity=…
最近在处理GridView的时候遇到这样一个问题:Android手机客户端接收服务端返回的一串数据(数据条数不固定),这串数据不一定都要显示到GridView上,也就是说有一部分内容需要隐藏掉,即有一部分Item需要隐藏. 最开始处理的时候使用的是View.GONE来隐藏整个Item,测试之后发现,内容是隐藏了,但是隐藏内容的这个item仍占用界面空间,这是不符合项目要求的,我们想要的效果是:如果有隐藏内容就隐藏掉,并且不占用界面空间,下一个item会自动向上填充! 最后想到的办法是动态的将It…