当前位置: 首页 > news >正文

Android学习笔记进阶20之得到图片的缩略图

<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>


 

相关文章:

  • shell编程学习之uniq
  • http错误码大全
  • PHP常用的正则表达式
  • 多态性
  • Ubuuntu10.04上配置Django、Apache、mod_wsgi
  • ${ }的特别功能
  • 依据现有系统编写小型linux系统
  • pku 2623 Crashing Robots 第一周训练——模拟
  • 站长百科访谈第59期:张清分享网站优化技巧
  • Castle ActiveRecord的一对多问题
  • syntax error near unexpected token `then'
  • flex和javascript互相调用的一个例子
  • JSTL SQL标签库 使用
  • 数据结构--二叉树 的先序,中序,后序遍历
  • Directx11 教程(2) 基本的windows应用程序框架(2)
  • 2017-08-04 前端日报
  • 77. Combinations
  • Android Studio:GIT提交项目到远程仓库
  • Android单元测试 - 几个重要问题
  • CSS 提示工具(Tooltip)
  • CSS实用技巧干货
  • docker python 配置
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java,console输出实时的转向GUI textbox
  • Java程序员幽默爆笑锦集
  • Laravel Mix运行时关于es2015报错解决方案
  • MobX
  • React系列之 Redux 架构模式
  • Vue2 SSR 的优化之旅
  • - 概述 - 《设计模式(极简c++版)》
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 数组的操作
  • 温故知新之javascript面向对象
  • 我有几个粽子,和一个故事
  • 小程序上传图片到七牛云(支持多张上传,预览,删除)
  • 一天一个设计模式之JS实现——适配器模式
  • 再谈express与koa的对比
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • Java性能优化之JVM GC(垃圾回收机制)
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​Base64转换成图片,android studio build乱码,找不到okio.ByteString接腾讯人脸识别
  • ​人工智能书单(数学基础篇)
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (4.10~4.16)
  • (C语言)字符分类函数
  • (非本人原创)史记·柴静列传(r4笔记第65天)
  • (分类)KNN算法- 参数调优
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (九)c52学习之旅-定时器
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (一) springboot详细介绍
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在