android 官网处理图片 代码

 1     /**
 2      * 获取压缩后的图片 (官网大图片加载对应代码)
 3      *
 4      * @param res
 5      * @param resId
 6      * @param reqWidth
 7      *            所需图片压缩尺寸最小宽度
 8      * @param reqHeight
 9      *            所需图片压缩尺寸最小高度
10      * @return
11      */
12     public static Bitmap decodeSampledBitmapFromResource(Resources res,
13             int resId, int reqWidth, int reqHeight) {
14
15         // 首先不加载图片,仅获取图片尺寸
16         final BitmapFactory.Options options = new BitmapFactory.Options();
17         // 当inJustDecodeBounds设为true时,不会加载图片仅获取图片尺寸信息
18         options.inJustDecodeBounds = true;
19         // 此时仅会将图片信息会保存至options对象内,decode方法不会返回bitmap对象
20         BitmapFactory.decodeResource(res, resId, options);
21
22         // 计算压缩比例,如inSampleSize=4时,图片会压缩成原图的1/4
23         options.inSampleSize = calculateInSampleSize(options, reqWidth,
24                 reqHeight);
25
26         // 当inJustDecodeBounds设为false时,BitmapFactory.decode...就会返回图片对象了
27         options.inJustDecodeBounds = false;
28         // 利用计算的比例值获取压缩后的图片对象
29         return BitmapFactory.decodeResource(res, resId, options);
30     }
31
32     /**
33      * 计算压缩比例值 (官网大图片加载对应代码)
34      *
35      * @param options
36      *            解析图片的配置信息
37      * @param reqWidth
38      *            所需图片压缩尺寸最小宽度
39      * @param reqHeight
40      *            所需图片压缩尺寸最小高度
41      * @return
42      */
43     public static int calculateInSampleSize(BitmapFactory.Options options,
44             int reqWidth, int reqHeight) {
45         // 保存图片原宽高值
46         final int height = options.outHeight;
47         final int width = options.outWidth;
48         // 初始化压缩比例为1
49         int inSampleSize = 1;
50
51         // 当图片宽高值任何一个大于所需压缩图片宽高值时,进入循环计算系统
52         if (height > reqHeight || width > reqWidth) {
53
54             final int halfHeight = height / 2;
55             final int halfWidth = width / 2;
56
57             // 压缩比例值每次循环两倍增加,
58             // 直到原图宽高值的一半除以压缩值后都~大于所需宽高值为止
59             while ((halfHeight / inSampleSize) >= reqHeight
60                     && (halfWidth / inSampleSize) >= reqWidth) {
61                 inSampleSize *= 2;
62             }
63         }
64         return inSampleSize;
65     }
时间: 2024-11-07 15:02:19

android 官网处理图片 代码的相关文章

一劳永逸搭建android开发环境(android官网reference sample api tutorial全下载)

[摘要]本文简单介绍了android开发环境的搭建,重点介绍了SDK manager和AVD升级问题:并提供了android reference,sample,api,及docs的下载信息. [1]为何写这个题目呢? 1.工欲其事必先利器: 2.墙内的世界太烦躁,健康向上的东西也得不到: 3.google及其android在墙外: 4.SDK不好太多,太零散,非得用管理工具才好使: 如果你会翻越长城这堵世界奇迹之墙,你可以在android官网https://developer.android.c

android官网被封掉了,只好用这个网站进谷歌了!嘎嘎

 http://developer.android.com/sdk/index.html    这个可以进去,但是必须是搜狐 .360,uc都不用特意翻墙 http://173.194.124.53/  谷歌官网,翻墙哦! android官网被封掉了,只好用这个网站进谷歌了!嘎嘎

android官网被封掉了,仅仅好用这个站点进谷歌了!嘎嘎

?? http://developer.android.com/sdk/index.html    这个能够进去.可是必须是搜狐 .360,uc都不用特意FQ http://173.194.124.53/  谷歌官网,FQ哦!

uiautomator android 官网翻译

http://www.jianshu.com/p/7718860ec657 2016.07.25 20:59 字数 3675 Android UIAutomator浅谈 -------------------------------------------------------------------------------- 简介 Uiautomator是谷歌推出的,用于UI自动化测试的工具,也就是普通的手工测试,点击每个控件元素看看输出的结果是否符合预期.比如登陆界面分别输入正确和错误的用

Android 官网提供的Custom-view 编译出错--error: No resource identifier found for attribute

error: No resource identifier found for attribute in custom-views from http://developer.android.com 原来: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:custom="http://schemas.android.com/apk/res/com.example

【甘道夫】官网MapReduce实例代码详细批注

引言 1.本文不描述MapReduce入门知识,这类知识网上很多,请自行查阅 2.本文的实例代码来自官网 http://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html 最后的WordCount v2.0,该代码相比源码中的org.apache.hadoop.examples.WordCount要复杂和完整,更适合作为MapReduc

Bootstrap--模仿官网写一个页面

本文参考Bootstrap官方文档写了简单页面来熟悉Bootstrap的栅格系统.常用CSS样.Javascript插件和部分组件. 以下html代码可以直接复制本地运行: BootstrapPage1:常见的一种页面类型,页面导航,左侧分类.右侧新闻列表: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8&q

android測试工具MonkeyRunner--google官网翻译

近期在复习之前的笔记,在回想MonkeyRunner时看了看google官网的内容,写得不错.就翻译出来分享下.事实上google官网真是一个学习的好地方. 基础知识 MonkeyRunner工具提供了一个API用于在Android代码之外控制Android设备和模拟器.通过MonkeyRunner.您能够写出一个Python程序去安装一个Android应用程序或測试包.执行它,向它发送模拟击键.截取它的用户界面图片.并将截图存储于工作站上.monkeyrunner工具的主要设计目的是用于測试功

Android 7.0行为变化—开发者应该关注的(官网同步翻译)

Android 7.0行为变化-开发者应该关注的(官网同步翻译) 版权声明:转载必须注明本文转自严振杰的博客: http://blog.yanzhenjie.com 如果想了解更多Android7.0的内容,可以顺便再看看Android7.0写给开发者的一封信(官网同步翻译). 如果你的引文够好,推荐你阅读官网文章: Android 7.0 Behavior Changes Android N 除了提供诸多新特性和功能外,还对系统和 API 行为做出了各种变更.本文重点介绍你应该了解并在开发应用