使用Java代碼在Android中實(shí)現(xiàn)圖片裁剪功能
前言
Android應(yīng)用中經(jīng)常會(huì)遇到上傳相冊(cè)圖片的需求,這里記錄一下如何進(jìn)行相冊(cè)圖片的選取和裁剪。
相冊(cè)選取圖片
1. 激活相冊(cè)或是文件管理器,來(lái)獲取相片,代碼如下:
private static final int TAKE_PICTURE_FROM_ALBUM = 1;
private void takePictureFromAlbum() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM);
}
2. 通過(guò)startAcitivityForResult()方法,我們可以在onAcitivityResult()中來(lái)獲取圖片的URI,然后將圖片的URI傳遞給圖片裁剪函數(shù),代碼如下:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK) {
switch (requestCode) {
case TAKE_PICTURE_FROM_ALBUM:
if (data != null) {
cropPictureFromAlbum(data.getData());
}
break;
case PICTURE_CROP_CODE:
if (data != null) {
// 這是裁剪后圖片的bitmap
Bitmap bitmap = data.getParcelableExtra("data");
}
break;
default:
break;
}
}
}
private static final int TAKE_PICTURE_FROM_ALBUM = 1;
private void takePictureFromAlbum() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, TAKE_PICTURE_FROM_ALBUM);
}
private static final int PICTURE_CROP_CODE = 2;
private void cropPictureFromAlbum(Uri pictureUri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(pictureUri, "image/*");
intent.putExtra("crop", "true");
// 裁剪框比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 2);
// 裁剪后輸入圖片的尺寸大小
intent.putExtra("outputX", 300);
intent.putExtra("outputY", 300);
// 取消人臉識(shí)別
intent.putExtra("noFaceDetection", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, PICTURE_CROP_CODE);
}
3. 在onActivityResult里,通過(guò)data.getParcelableExtra("data")可以獲取圖片裁剪之后的bitmap,之后就可以將bitmap賦值給圖片控件了。
- Android調(diào)用系統(tǒng)圖片裁剪限定尺寸及7.0照相問(wèn)題的解決方法
- Android實(shí)現(xiàn)拍照及圖片裁剪(6.0以上權(quán)限處理及7.0以上文件管理)
- android調(diào)用原生圖片裁剪后圖片尺寸縮放的解決方法
- Android ImageView實(shí)現(xiàn)圖片裁剪和顯示功能
- Android 7.0中拍照和圖片裁剪適配的問(wèn)題詳解
- Android圖片裁剪功能實(shí)現(xiàn)代碼
- Android實(shí)現(xiàn)相機(jī)拍攝、選擇、圖片裁剪功能
- Android開(kāi)發(fā)從相機(jī)或相冊(cè)獲取圖片裁剪
- android實(shí)現(xiàn)圖片裁剪的兩種方法
相關(guān)文章
Android開(kāi)發(fā)中DatePicker日期與時(shí)間控件實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了Android開(kāi)發(fā)中DatePicker日期與時(shí)間控件,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-08-08
Android自定義View實(shí)現(xiàn)微信支付密碼輸入框
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)微信支付密碼輸入框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
Android studio配置國(guó)內(nèi)鏡像源的實(shí)現(xiàn)
這篇文章主要介紹了Android studio配置國(guó)內(nèi)鏡像源的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
android開(kāi)發(fā)教程之實(shí)現(xiàn)listview下拉刷新和上拉刷新效果
這篇文章主要介紹了android實(shí)現(xiàn)listview下拉刷新和上拉刷新效果,Android的ListView上拉下拉刷新,原理都一樣,在Touch事件中操作header/footer的paddingTop屬性,需要的朋友可以參考下2014-02-02
Android TextView字體顏色設(shè)置方法小結(jié)
這篇文章主要介紹了Android TextView字體顏色設(shè)置方法,結(jié)合實(shí)例形式總結(jié)分析了Android開(kāi)發(fā)中TextView設(shè)置字體顏色的常用技巧,需要的朋友可以參考下2016-02-02
Android gradle插件打印時(shí)間戳的方法詳解
這篇文章主要給大家介紹了關(guān)于Android gradle插件打印時(shí)間戳的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)各位Android開(kāi)發(fā)者們具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Android實(shí)現(xiàn)音樂(lè)播放器歌詞顯示效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)音樂(lè)播放器歌詞顯示效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06
淺析AndroidStudio3.0最新 Android Profiler分析器(cpu memory network
Android Profiler分為三大模塊: cpu、內(nèi)存 、網(wǎng)絡(luò)。本文給大家介紹AndroidStudio3.0最新 Android Profiler分析器(cpu memory network 分析器)的相關(guān)知識(shí),他們的基本使用方法,在文中都給大家提到,具體內(nèi)容詳情大家通過(guò)本文一起學(xué)習(xí)吧2017-12-12
Android中點(diǎn)擊按鈕啟動(dòng)另一個(gè)Activity及Activity之間傳值問(wèn)題
這篇文章主要介紹了Android中點(diǎn)擊按鈕啟動(dòng)另一個(gè)Activity及Activity之間傳值問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01

