Android從相冊選擇圖片剪切和上傳
本文實例為大家分享了Android剪切和上傳圖片的具體代碼,供大家參考,具體內(nèi)容如下
1、從Android系統(tǒng)相冊選擇一張圖片getImageFromAlbum():
/**
* 從圖庫獲得照片
*/
protected void getImageFromAlbum() {
isImgs = true;
// MainApplication.changeSettingStateus = true;
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");// 相片類型
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 360);
intent.putExtra("outputY", 360);
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
// intent.putExtra("outputFormat",
// Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true); // no face detection
startActivityForResult(intent, 1);
}
2、在onActivityResult()方法中:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
String text;
switch (requestCode) {
case 1:
Uri selectedImage = data.getData();
CutPic(selectedImage);
break;
case 3:// 對圖片進行剪切
if (data != null) {
Bitmap bitmap = data.getParcelableExtra("data");
temps = zoomImage(bitmap, 360, 360);
// 上傳圖片
uploadImg(temps);
}
break;
default:
break;
}
}
}
3、圖片剪切 CutPic(selectedImage);
/**
* 將圖片裁剪到指定大小
*
* @param uri
* @param size
* @param flag
*/
public void CutPic(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", true);// 設置Intent中的view是可以裁剪的
// 設置寬高比
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// 設置裁剪圖片的寬高
intent.putExtra("outputX", 360);
intent.putExtra("outputY", 360);
intent.putExtra("outputFormat", "JPEG");// 圖片格式
// 設置是否返回數(shù)據(jù)
intent.putExtra("return-data", true);
// 開啟一個帶有返回值的Activity,請求碼為3
startActivityForResult(intent, 3);
}
4、圖片壓縮剪切zoomImage(bitmap, 360, 360);
/***
* 圖片的縮放方法
*
* @param bgimage
* :源圖片資源
* @param newWidth
* :縮放后寬度
* @param newHeight
* :縮放后高度
* @return
*/
public static Bitmap zoomImage(Bitmap bgimage, double newWidth,
double newHeight) {
// 獲取這個圖片的寬和高
float width = bgimage.getWidth();
float height = bgimage.getHeight();
// 創(chuàng)建操作圖片用的matrix對象
Matrix matrix = new Matrix();
// 計算寬高縮放率
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// 縮放圖片動作
matrix.postScale(scaleWidth, scaleHeight);
Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
(int) height, matrix, true);
return bitmap;
}
5、上傳圖片文件至服務器uploadImg(bitMaps);
/**
* 上傳圖片
*
* @param bitP
*/
private void uploadImg(final Bitmap bitP) {
// 將Bitmap轉換成字符串
String string = null;
ByteArrayOutputStream bStream = new ByteArrayOutputStream();
bitP.compress(CompressFormat.JPEG, 100, bStream);
byte[] bytes = bStream.toByteArray();
string = Base64.encodeToString(bytes, Base64.DEFAULT);
try {
bStream.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//string 文件上傳服務器...
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android獲取應用程序名稱(ApplicationName)示例
本文以實例方式為大家介紹下獲取應用程序名稱(ApplicationName)的具體實現(xiàn),感興趣的各位可以參考下哈2013-06-06
Android 實現(xiàn)左滑出現(xiàn)刪除選項
滑動刪除的部分主要包含兩個部分, 一個是內(nèi)容區(qū)域(用于放置正常顯示的view),另一個是操作區(qū)域(用于放置刪除按鈕)。下面通過本文給大家介紹Android 實現(xiàn)左滑出現(xiàn)刪除選項,需要的朋友可以參考下2017-06-06
詳解Android App中ViewPager使用PagerAdapter的方法
這篇文章主要介紹了詳解Android App中ViewPager使用PagerAdapter的方法,同時附帶了一個ViewPager的PagerAdapter不能更新數(shù)據(jù)的問題解決方法,需要的朋友可以參考下2016-03-03
Android應用中內(nèi)嵌SQLite數(shù)據(jù)庫的基本操作指南
這篇文章主要介紹了Android應用中內(nèi)嵌SQLite數(shù)據(jù)庫的基本操作指南,包括創(chuàng)建DAO類接口以及相關的增刪查改等操作的明說,需要的朋友可以參考下2016-02-02
Android進階NestedScroll嵌套滑動機制實現(xiàn)吸頂效果詳解
這篇文章主要為大家介紹了Android進階NestedScroll嵌套滑動機制實現(xiàn)吸頂效果詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
Android錄音功能的實現(xiàn)以及踩坑實戰(zhàn)記錄
在Android 開發(fā)過程中,有些功能是通用的,或者是多個業(yè)務方都需要使用的,下面這篇文章主要給大家介紹了關于Android錄音功能的實現(xiàn)以及踩坑的相關資料,需要的朋友可以參考下2022-06-06
Android Activity與Service通信(不同進程之間)詳解
這篇文章主要介紹了Android Activity與Service通信(不同進程之間)的相關資料,這里提供了三種方法,需要的朋友可以參考下2016-10-10

