导航:首页 > 操作系统 > android获取图片缩略图

android获取图片缩略图

发布时间:2025-01-21 14:22:33

android 调用系统相机拍照后 添加文字水印

昨天需要添加照片水印的功能,google后找到了博客大v 水寒 的文章 对我帮助很大 http://blog.csdn.net/dawanganban/article/details/51148070
大v的文章 很有深度 非常有用
添加水印有了大v的工具类不成问题 但是在获取拍照后返回的图片时,由于使用的是拍照后的缩略图,导致处理后图片模糊不清;所以想到了先保存原图,再通过原图添加水印(以下方式,获取的是稍大的缩略图,比系统默认的清晰);

经过一番折腾 终于获取了 想要的图片 美中不足的是水印有点模糊 整体效果还好

㈡ android加载gif的时候先加载一张缩略图 点击加载动图怎么实现的

服务端存储了一张GIF图,当请求时会发送这张GIF图的地址。在Android应用中加载GIF的第一帧时,可以使用Glide库来实现。具体操作如下:

Glide.with(context).load(url).asBitmap().into(imageview);

上述代码片段中,Glide是一个流行的Android图片加载库,用于处理图片加载和显示。首先,通过Glide.with(context)初始化Glide,这里的context可以是Activity或Application的实例。然后,调用load方法,传入GIF图的URL地址。接着,使用asBitmap()方法指定加载的图片格式为Bitmap,这样可以确保加载的是GIF的第一帧。最后,调用into方法,将加载的图片显示到指定的ImageView中。

这种方法的好处是简单易用,同时也支持网络图片的缓存和加载优化,能够提高应用的性能和用户体验。需要注意的是,如果需要加载整个GIF动画,可以去掉asBitmap()方法,直接调用load(url).into(imageview)。

在实际应用中,为了提升用户体验,可以在加载GIF动画之前,先展示一张缩略图。这样,在GIF动画加载完成后,可以迅速切换到完整的动画效果。具体实现方式是,在Glide加载GIF的第一帧之前,先加载一张预定义的缩略图。当GIF加载完成后,可以使用View动画或图片切换等技术实现平滑过渡。

此外,Glide还提供了许多其他功能,例如错误处理、加载指示器、缓存控制等。通过这些功能,可以进一步优化图片加载过程,提升应用的整体表现。

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

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

在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获取图片缩略图相关的资料

热点内容
我的世界如何编程 浏览:84
vue反编译代码有问题 浏览:948
linuxshell字符串连接字符串 浏览:51
androidviewpager刷新 浏览:438
python编程计算平均分 浏览:678
加密数字货币市值查询 浏览:692
时尚商圈app怎么样 浏览:584
stacklesspython教程 浏览:138
用命令行禁用135端口 浏览:212
linux防火墙编程 浏览:627
pdf阅读器删除 浏览:979
考研人如何缓解压力 浏览:822
买电暖壶哪个app便宜 浏览:505
洛克王国忘记服务器了怎么办 浏览:782
为什么cf登录服务器没反应 浏览:695
服务器如何获取文件列表 浏览:672
creo五轴编程光盘 浏览:14
苹果app网络验证在哪里 浏览:14
博科清空命令 浏览:384
简爱英文pdf 浏览:376