編輯:關於Android編程
以前在做手機上傳圖片的時候,直接獲取相機拍攝的原圖上傳,原圖大小一般1~2M,因此上傳一張都比較浪費資源,有些場景還需要圖片多張上傳,所以最近查看了好多前輩寫的關於圖片處理的資料,然後試著改了一個圖片壓縮的方法。經測試用著還不錯,壓縮效果很理想,主要是失真不明顯。在這裡分享一下。
下面直接上代碼:
/**
* 上傳服務器時把圖片調用下面方法壓縮後 保存到臨時文件夾 圖片壓縮後小於200KB,失真度不明顯
*
* @param path
* @return
* @throws IOException
*/
public static Bitmap revitionImageSize(String path) throws IOException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream(
new File(path)));
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeStream(in, null, options);
in.close();
int i = 0;
Bitmap bitmap = null;
// options.inJustDecodeBounds=true那麼將不返回實際的bitmap對象,不給其分配內存空間但是可以得到一些解碼邊界信息即圖片大小等信息
// outHeight(圖片原始高度)和 outWidth(圖片的原始寬度)
// inSampleSize表示縮略圖大小為原始圖片大小的幾分之一
// options.outWidth >> i(右移運算符)表示:outWidth/(2^i)
while (true) {
if ((options.outWidth >> i <= 2000)
&& (options.outHeight >> i <= 2000)) {
in = new BufferedInputStream(
new FileInputStream(new File(path)));
options.inSampleSize = (int) Math.pow(2.0D, i); // 冪運算 i為幾次方
options.inJustDecodeBounds = false;
bitmap = BitmapFactory.decodeStream(in, null, options);
break;
}
i += 1;
}
return bitmap;
}
Android實現帶有邊框的ListView和item的方法
本文實例講述了Android實現帶有邊框的ListView和item的方法。分享給大家供大家參考,具體如下:想為ListView和item四周添加邊框有兩種方法:1.貼一
移動應用技術開發大作業——Android平台個人簡歷
項目結構MainActivity使用的之前寫的登錄界面xml代碼:(兩個輸入文本 一個登陸按鈕 范佩西背景圖)<merge xmlns:android="
模版方法模式在 android中使用
模版方法模式(Template Method):模版方法模式是類的行為模式。提供一個抽象類,把一部分的邏輯以具體方法或構造子形式實現,然後聲明一些抽象方法,迫使子類實現剩
viewpager實現圖片輪番(本地圖片)
(項目中需要實現圖片輪番效果,就查資料著重學習,本地圖片實現)原理就是利用定時任務器定時切換ViewPager的頁面,根據圖片個數動態生成下端的圓點。效果圖: 1、獲取本