Android 图片的缩略图

<1>简介

之前往往是通过Bitmap、Drawable和Canvas配合完成,需要写一系列繁杂的逻辑去缩小原有图片,从而得到缩略图。

现在我给大家介绍一种比较简单的方法:(网上有)

在Android 2.2版本中,新增了一个ThumbnailUtils工具类来是实现缩略图,此工具类的功能是强大的,使用是简单,它提供了一个常量和三个方法。利用这些常数和方法,可以轻松快捷的实现图片和视频的缩略图功能。

<2>ThumbnailUtils工具类

常量:

OPTIONS_RECYCLE_INPUT

从此常量用于表示应该回收extractThumbnail(Bitmap, int, int, int)输入源图片(第一个参数),除非输出图片就是输入图片。

方法:

    Bitmap createVideoThumbnail(String filePath, int kind)

    创建一张视频的缩略图。如果视频已损坏或者格式不支持可能返回null

              参数:

                                filePath: 视频文件路径

                     kind:  文件种类,可以是 MINI_KIND 或 MICRO_KIND

 

    Bitmap extractThumbnail(Bitmap source, int width, int height, int options)

    创建所需尺寸居中缩放的位图。

    参数:

          source: 需要被创造缩略图的源位图对象

          width: 生成目标的宽度

         height: 生成目标的高度

         options:在缩略图抽取时提供的选项

    Bitmap extractThumbnail(Bitmap source, int width, int height)

    创建所需尺寸居中缩放的位图。

    参数:

        source: 需要被创造缩略图的源位图对象

        width: 生成目标的宽度

        height: 生成目标的高度

 <3>具体实现:

package xiaosi.thumbnail;import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.ThumbnailUtils;
import android.os.Bundle;
import android.widget.ImageView;public class ThumbnailActivity extends Activity {  private Bitmap bitmap = null;private ImageView image;@Override  public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.main);  image = (ImageView) findViewById(R.id.image);  //得到原图片bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.v);//得到缩略图bitmap = ThumbnailUtils.extractThumbnail(bitmap, 100, 100);  image.setImageBitmap(bitmap);  }  
}  

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"android:background="#999999" android:layout_width="fill_parent" android:layout_height="fill_parent"><ImageView  android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/v"android:layout_marginLeft="10dip"/><TextView  android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="缩略图:" android:textColor="#000000"/><ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content"android:layout_marginLeft="10dip"/></LinearLayout>

 

转载于:https://www.cnblogs.com/zhujiabin/p/4229446.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/375351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win32ASM学习[16] :乘除指令: MUL、IMUL、DIV、IDIV

---------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一. 无符号数乘法指令 MUL(MULtiply) 格式: MUL OPRD 功能: 乘法操作. 说明: 1. OPRD为通用…

Linux命令之man

一、引言 一直听别人说linux下有个男人很厉害&#xff0c;遇到不会的不懂的都可以问他&#xff0c;自己也会几个man命令&#xff0c;但是一直不知道到底man命令是怎么用的&#xff0c;比如查询不同类的帮助该在man后跟数字几&#xff0c;man后的数字有什么具体的意思&#xff0…

《JavaScript权威指南》学习笔记 第二天 下好一盘大棋

前段学习js的时候总是零零散散的&#xff0c;以至于很多东西都模棱两可。时间稍微一久&#xff0c;就容易忘记。最主要的原因是这些东西&#xff0c;原来学的时候就不是太懂&#xff0c;以至于和其他知识无法形成记忆链&#xff0c;所以孤零零的知识特别容易忘记。重温犀牛书&a…

Win32ASM学习[17]:条件跳转

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 一.跳转相关的标志位: 11 10 9 8 7 6 5 4 3 2 1 0 OF DF IF TF SF Z…

SUID或SGID程序中能不能用system函数

system()函数的声明和说明如下&#xff1a; 注意它的描述那里&#xff0c;system()执行一个由command参数定义的命令&#xff0c;通过调用/bin/sh -c命令来实现这个功能。也就是说它的逻辑是这样的&#xff01; 进程调用system函数&#xff0c;system函数调用fork创建一个子进程…

史上最全的maven pom.xml文件教程详解

<project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd >; <!-- 父项目的坐标。如果项目中没有规定某个元素的值&am…

Win32ASM学习[18]:串指令-MOVS*、CMPS*、SCAS*、LODS*、REP、REPE、REPNE

-------------------------------------------------------------------------------------------------------------------------------------------------------- 一.字符串传送指令 MOVSB/MOVSW/MOVSD 格式: MOVS OPD,OPS 功能: OPD<--OPS. 说明: 1. 其中OPS为源串符…

Xamarin iOS编写第一个应用程序创建工程

Xamarin iOS编写第一个应用程序创建工程 在Xcode以及Xamarin安装好后&#xff0c;就可以在Xamarin Studio中编写程序了。本节将主要讲解在Xamarin Studio中如何进行工程的创建以及编写代码等内容XamariniOS编写第一个应用程序创建工程本文选自Xamarin iOS开发实战大学霸。 1.3.…

Jade之Extends

Extends jade允许多个jade文件继承一个jade文件。 jade&#xff1a; //- layout.jade doctype html htmlheadblock titletitle Default titlebodyblock content //- index.jade extends ./layout.jadeblock titletitle Article Titleblock contenth1 My Article html&#xff1…

Win32ASM学习[19]:结构与联合

结构和联合分别用 struct、union 定义, 都是 ends 结束定义. 它们使用方法相同, 并可以互相嵌套; 主要区别是后者的各成员共用同一个地址. -------------------------------------------------------------------------------------------------------------------------------…

hdu 1257 最少拦截系统(贪心)

题意&#xff1a; 最少需要多少个拦截系统才能将所有的导弹拦截下来。 思路&#xff1a; 第1枚导弹一定需要第一个拦截系统&#xff0c;第2枚导弹如果比第1个高度高&#xff0c;则需要第二个拦截系统。 考虑第i枚导弹&#xff0c;如果前i-1枚导弹的高度都比它小&#xff0c;则需…

Birt使用总结

把report放到其他服务器要重新建立Data Source ,这是配置&#xff0c;拷贝项目时不会同时拷贝 (1)在EXTJs中利用Report实现报表的刷新 Ext.getCmp("showview").body.update("<iframe idshowviewframe src" "> </iframe>"…

Win32ASM学习[20]:子程序

关于函数调用约定 :函数调用约定 这是以前的一个求和函数的例子 ---------------------------------------------------------------------------------------------------------------- .386 .model flat, stdcall include windows.inc include kernel32.inc include …

Mac联网恢复系统重新安装Lion

Mac的Lion系统&#xff0c;虽然不像Windows那样需要经常重装&#xff0c;但也难免会有要重置的时候&#xff0c;比如更换硬盘。本文介绍如何利用Mac的联网恢复系统进行Lion系统的在线恢复。Mac的在线恢复系统只在近几年的机型上才有&#xff0c;在进行系统恢复前&#xff0c;请…

【线性代数公开课MIT Linear Algebra】 第二十三课 微分方程与exp(At)

本系列笔记为方便日后自己查阅而写&#xff0c;更多的是个人见解&#xff0c;也算一种学习的复习与总结&#xff0c;望善始善终吧~ 一阶常系数微分方程 Aududt 将一阶常系数微分方程转换为线性代数问题的关键在于常系数微分方程的解一定是指数形式的。那么我们的需要求解的东西…

Win32ASM学习[21]:宏汇编(1)

-------------------------------------------------------------------------------------------------------------------- 嗯 上个星期到现在 把Win32ASM基础汇编复习了下 在网上找到了 这个不错系列 于是就转载过来了 其中 根据我自己的水平 删减了一些内容 或…

ubunu安装软件的一个错误

http://tonychiu.blog.51cto.com/656605/654776/ 由于ubuntu/debian软件库中有时候不同的库更新速度不一致&#xff0c;apt-get 出出现如下的错误提示 Some packages could not be installed. This may mean that you have requested an impossible situation or if you are us…

常用的基本Windows数据类型

常用的基本Windows数据类型 --------------------------------------------------------------------------------------------------------------------------------------------------------- 类 型 …

删除空文件夹 清除CS扩展名文件 bat

删除空文件夹。删的干净。删的彻底。 将下列代码复制到txt中保存。并把后缀.txt命成.bat。然后运行即可。 方案&#xff11;.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 删除指定目录及其子目录下的空文件夹.bat 代码&#xff1a;…

ios 坐标转换

// 将像素point由point所在视图转换到目标视图view中&#xff0c;返回在目标视图view中的像素值 - (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view; // 将像素point从view中转换到当前视图中&#xff0c;返回在当前视图中的像素值 - (CGPoint)convertPoint:(C…