導航:首頁 > 操作系統 > 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
伺服器如何獲取文件列表 瀏覽:673
creo五軸編程光碟 瀏覽:14
蘋果app網路驗證在哪裡 瀏覽:14
博科清空命令 瀏覽:384
簡愛英文pdf 瀏覽:376