這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)Android開(kāi)發(fā)中怎么實(shí)現(xiàn)一個(gè)從相冊(cè)選擇圖片進(jìn)行上傳功能,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)專注于濱海新區(qū)企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城系統(tǒng)網(wǎng)站開(kāi)發(fā)。濱海新區(qū)網(wǎng)站建設(shè)公司,為濱海新區(qū)等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
1、從Android系統(tǒng)相冊(cè)選擇一張圖片getImageFromAlbum():
/**
* 從圖庫(kù)獲得照片
*/
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:// 對(duì)圖片進(jìn)行剪切
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);// 設(shè)置Intent中的view是可以裁剪的
// 設(shè)置寬高比
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// 設(shè)置裁剪圖片的寬高
intent.putExtra("outputX", 360);
intent.putExtra("outputY", 360);
intent.putExtra("outputFormat", "JPEG");// 圖片格式
// 設(shè)置是否返回?cái)?shù)據(jù)
intent.putExtra("return-data", true);
// 開(kāi)啟一個(gè)帶有返回值的Activity,請(qǐng)求碼為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) {
// 獲取這個(gè)圖片的寬和高
float width = bgimage.getWidth();
float height = bgimage.getHeight();
// 創(chuàng)建操作圖片用的matrix對(duì)象
Matrix matrix = new Matrix();
// 計(jì)算寬高縮放率
float scaleWidth = ((float) newWidth) / width;
float scaleHeight = ((float) newHeight) / height;
// 縮放圖片動(dòng)作
matrix.postScale(scaleWidth, scaleHeight);
Bitmap bitmap = Bitmap.createBitmap(bgimage, 0, 0, (int) width,
(int) height, matrix, true);
return bitmap;
}5、上傳圖片文件至服務(wù)器uploadImg(bitMaps);
/**
* 上傳圖片
*
* @param bitP
*/
private void uploadImg(final Bitmap bitP) {
// 將Bitmap轉(zhuǎn)換成字符串
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 文件上傳服務(wù)器...
}上述就是小編為大家分享的Android開(kāi)發(fā)中怎么實(shí)現(xiàn)一個(gè)從相冊(cè)選擇圖片進(jìn)行上傳功能了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享文章:Android開(kāi)發(fā)中怎么實(shí)現(xiàn)一個(gè)從相冊(cè)選擇圖片進(jìn)行上傳功能
文章鏈接:http://chinadenli.net/article42/jpseec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、Google、App設(shè)計(jì)、靜態(tài)網(wǎng)站、動(dòng)態(tài)網(wǎng)站、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容