android缩略图,安卓手机图库缩略图

android4.4 中如何获取最近应用的缩略图

最近有项需求是获取应用的缩略,用于在动画时显示。因此就对此块知识简要了解了一下。

创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都网站制作、成都做网站网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元南山做网站,已为上家服务,为南山各地企业和个人服务,联系电话:13518219792

在android中获取视频文件的缩略图有三种方法:

1.从媒体库中查询

新视频增加后需要SDCard重新扫描才能给新增加的文件添加缩略图,灵活性差,而且不是很稳定,适合简单应用

2. android 2.2以后使用ThumbnailUtils类获取

实现简单,但2.2以前的版本不支持

3.调用jni文件,实现MediaMetadataRetriever类

实现复杂,但比较灵活,推荐使用

那么Android 中如何获取最近应用的缩略图,这块也有现成的函数,不过都被 @hide 掉了,所以需要利用java reflect 反射才能使用

核心代码如下:

package com.example.testondraw;

import java.lang.reflect.Constructor;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

import android.app.ActivityManager;

import android.graphics.Bitmap;

import android.util.Log;

/**

* 调用隐藏方法的助手类

*/public class HideExploder {

static final String TAG = "HideExploder";

private final static Object refLock = new Object();

private static Method getTaskThumbnails = null;

private static Field taskThumbnailsBitmap = null;

@SuppressWarnings("rawtypes")

public static void listAllObject(String classFullName) {

try {

Log.i(TAG, "listAllObject classFullName: " + classFullName);

Class? clazz = Class.forName(classFullName);

// 反射属性字段

Field[] fields = clazz.getDeclaredFields();

// 反射方法字段

Method[] methods = clazz.getDeclaredMethods();

// 反射构造器

Constructor[] constuctors = clazz.getDeclaredConstructors();

Log.i(TAG, "FIELD========");

for (Field f : fields) {

Log.i(TAG, "TYPE: " + f.getType() + " NAME: " + f.getName());

}

Log.i(TAG, "METHOD========");

for (Method m : methods) {

Log.i(TAG, "METHOD NAME: " + m.getName());

}

Log.i(TAG, "CONSTUCTOR========");

for (Constructor c : constuctors) {

Log.i(TAG, "NAME:" + c.getName());

Class[] clss = c.getParameterTypes();

Object o = null;

// 产生实例

try {

if (clss.length == 0)

o = c.newInstance();

else if (clss.length 0) {

// TODO

}

Log.i(TAG, "object: " + o);

} catch (Exception e) {

e.printStackTrace();

}

}

} catch (Exception e) {

e.printStackTrace();

}

}

public static Bitmap getTaskThumbnailsBitmap(ActivityManager am, int id) {

synchronized (refLock) {

try {

if (getTaskThumbnails == null) {

getTaskThumbnails = am.getClass().getDeclaredMethod(

"getTaskThumbnails", int.class);

}

if (getTaskThumbnails != null) {

Object thumbnails = getTaskThumbnails.invoke(am,

Integer.valueOf(id));

if (thumbnails != null) {

if (taskThumbnailsBitmap == null)

taskThumbnailsBitmap = thumbnails.getClass()

.getField("mainThumbnail");

if (taskThumbnailsBitmap != null) {

return (Bitmap) taskThumbnailsBitmap

.get(thumbnails);

}

}

}

} catch (Exception e) {

Log.w(TAG, "getTaskThumbnailsBitmap error:" + e);

e.printStackTrace();

}

}

return null;

}

}

如何在低版本的Android SDK中生成缩略图

从Android2.2开始系统新增了一个缩略图ThumbnailUtils类,位于framework的android.media.ThumbnailUtils位置,可以帮助我们从mediaprovider中获取系统中的视频或图片文件的缩略图,该类提供了三种静态方法可以直接调用获取。

1.

static

Bitmap

createVideoThumbnail(String

filePath,

int

kind)

//获取视频文件的缩略图,第一个参数为视频文件的位置,比如/sdcard/android123.3gp,而第二个参数可以为MINI_KIND或MICRO_KIND最终和分辨率有关

2.

static

Bitmap

extractThumbnail(Bitmap

source,

int

width,

int

height,

int

options)

//直接对Bitmap进行缩略操作,最后一个参数定义为OPTIONS_RECYCLE_INPUT,来回收资源

3.

static

Bitmap

extractThumbnail(Bitmap

source,

int

width,

int

height)

//

这个和上面的方法一样,无options选项

ThumbnailUtils类是API

Level从8或更高才开始支持的。

Android缩略图类源代码

Android

2.2开始新增的缩略图类ThumbnailUtils的主要方法是静态的,对于Android

2.2或API

Level8以下的工程可以直接使用,本类相对于我们常规的缩略图类考虑更周全,除了尺寸比例优化外,针对OOM的内存管理方面有更周全的处理方式.

Android 中实现选择图片生成缩略图点击查看大图的功能

基本思路:

就是通过选择图片,生成保存好2种图片,一个是缩略图,一个是大图,点击相对应的图片,把大图传递过去

大图容易引用OOM,引用了一个开源库

android地图的缩略图怎么做

获取View的缩略图很有用,比如需要展示树形目录每个节点的内容的时候,将每个节点的布局显示通过缩略图抠取出来,通过每个布局的缩略图就可以了解每个页面的大概内容。、

实现代码如下:

private Bitmap getViewBitmap( View view ){

view.setDrawingCacheEnabled( true );

Bitmap bitmap = null;

try{

if( null != view.getDrawingCache( ) ){

bitmap = Bitmap.createScaledBitmap( view.getDrawingCache( ), 256, 192, false );

}else{

Bitmap bitmapTmp =( ( BitmapDrawable )( getResources( ).getDrawable( R.drawable.syncompdetailcontent_background ) ) ).getBitmap( );

}

}catch( OutOfMemoryError e ){

e.printStackTrace( );

}finally{

view.setDrawingCacheEnabled( false );

view.destroyDrawingCache( );

}

return bitmap;

}

如何解决Android手机中的图片缩略图问题

1.一般手机都有清理垃圾的软件什么的,勾选清理缩略图就好了,推荐使用猎豹清理大师。

2.如果没有此类软件,你也可以直接用文件管理器,开启显示隐藏文件,进入文件夹DCIM,把里面的.thumbnails文件夹直接删除就可以了。

3.最难的一种,电脑上D盘新建一个a.txt文件,"开始"-"运行",输入cmd,输入copy d:\a.txt d:\.thumbnails,把a.txt重命名为.thumbnails文件,然后将.thumbnails文件复制到手机DCIM文件夹下


当前题目:android缩略图,安卓手机图库缩略图
文章链接:http://scyanting.com/article/dsohphg.html