



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動(dòng)應(yīng)用開發(fā)技術(shù)】我的開源項(xiàng)目:Android圖片剪裁庫
最近利用一周左右的業(yè)余時(shí)間,終于完成了一個(gè)Android圖片剪裁庫,核心功能是根據(jù)自己的理解實(shí)現(xiàn)的,部分代碼參考了Android源碼的圖片剪裁應(yīng)用?,F(xiàn)在將該代碼開源在Github上以供大家學(xué)習(xí)和使用,地址:/Jhuster/ImageCropper,效果如下所示:
我的大致計(jì)劃是首先介紹一下這個(gè)庫的用法,然后再寫幾篇文章介紹一下其中的一些原理和關(guān)鍵技術(shù),希望對Android開發(fā)新手有所幫助?!咎匦浴恐С滞ㄟ^手勢移動(dòng)和縮放剪裁窗口支持固定剪裁窗口大小、固定窗口的長寬比率支持設(shè)置最大的窗口長和寬支持剪裁圖片的旋轉(zhuǎn)易于集成和使用【使用方法】修改AndroidManifest.xml文件需要添加一個(gè)Activity標(biāo)簽:<activity
android:name="com.ticktick.p_w_picpathcropper.CropImageActivity"/>需要添加寫SDcard的權(quán)限<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>2.啟動(dòng)圖片剪裁界面的方法第一種方法,使用庫中封裝的CropIntent來構(gòu)建Intent對象:private
void
startCropImage()
{
//
Create
a
CropIntent
CropIntent
intent
=
new
CropIntent();
//
Set
the
source
p_w_picpath
filepath/URL
and
output
filepath/URL
(Required)
intent.setImagePath("/sdcard/source.jpg");
intent.setOutputPath("/sdcard/cropped.jpg");
//
Set
a
fixed
crop
window
size
(Optional)
intent.setOutputSize(640,480);
//
Set
the
max
crop
window
size
(Optional)
intent.setMaxOutputSize(800,600);
//
Set
a
fixed
crop
window's
width/height
aspect
(Optional)
intent.setAspect(3,2);
//
Start
ImageCropper
activity
with
certain
request
code
and
listen
for
result
startActivityForResult(intent.getIntent(this),
REQUEST_CODE_CROP_PICTURE);
}第二種方法,自定義Intent對象:private
void
startCropImage()
{
//
Create
explicit
intent
Intent
intent
=
new
Intent(this,
CropImageActivity.class);
//
Set
the
source
p_w_picpath
filepath/URL
and
output
filepath/URL
(Required)
intent.setData(Uri.fromFile(new
File("/sdcard/source.jpg")));
intent.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new
File("/sdcard/cropped.jpg")));
//
Set
a
fixed
crop
window
size
(Optional)
intent.putExtra("outputX",640);
intent.putExtra("outputY",480);
//
Set
the
max
crop
window
size
(Optional)
intent.putExtra("maxOutputX",800);
intent.putExtra("maxOutputY",600);
//
Set
a
fixed
crop
window's
width/height
aspect
(Optional)
intent.putExtra("aspectX",3);
intent.putExtra("aspectY",2);
//
Start
ImageCropper
activity
with
certain
request
code
and
listen
for
result
startActivityForResult(intent,
REQUEST_CODE_CROP_PICTURE);
}3.獲取剪裁結(jié)果剪裁結(jié)束后,如果用戶點(diǎn)擊了“Save”按鈕,則可以通過MediaStore.EXTRA_OUTPUT得到保存的圖片的URL地址;如果用戶點(diǎn)擊了“Cancel”,則Activity的返回值會被設(shè)置為RESULT_CANCELprotected
void
onActivityResult(int
requestCode,
int
resultCode,
Intent
data)
{
if
(resultCode
!=
RESULT_OK)
{
return;
}
if
(requestCode
==
REQUEST_CODE_CROP_PICTURE
)
{
Uri
croppedUri
=
data.getExtras().getParcelable(MediaStore.EXTRA_OUTPUT);
InputStream
in
=
null;
try
{
in
=
getContentResolver().openInputStream(croppedUri);
Bitmap
b
=
BitmapFactory.decodeStream(in);
mImageView.setImageBitmap(b);
}
catch
(FileNotFoundException
e)
{
e.printStackTrace();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年維修申請報(bào)告(28篇)
- 跨境電商平臺的智能技術(shù)應(yīng)用
- 預(yù)防瘧疾知識培訓(xùn)課件
- 廣東茂名農(nóng)林科技職業(yè)學(xué)院《中學(xué)生物學(xué)課程標(biāo)準(zhǔn)與教材分析》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北省張家口市萬全縣2025年數(shù)學(xué)三下期末檢測模擬試題含解析
- 吉林醫(yī)藥學(xué)院《社會保險(xiǎn)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津財(cái)經(jīng)大學(xué)《跨境電子商務(wù)模擬》2023-2024學(xué)年第二學(xué)期期末試卷
- 燃料油硫化物濃度管理措施
- 2025屆玉樹藏族自治州雜多縣數(shù)學(xué)三下期末經(jīng)典試題含解析
- 沈陽北軟信息職業(yè)技術(shù)學(xué)院《數(shù)字成像技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 電鍍園區(qū)現(xiàn)場管理
- 第3課《列夫·托爾斯泰》課件-2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- TSDLPA 0001-2024 研究型病房建設(shè)和配置標(biāo)準(zhǔn)
- 陜09J01 建筑用料及做法圖集
- PI形式發(fā)票范文模板
- 室內(nèi)設(shè)計(jì)-中式古典風(fēng)格課件
- MOC3061驅(qū)動(dòng)BT134雙向可控硅
- 無線通信與網(wǎng)絡(luò)復(fù)習(xí)資料
- 八大員考試試題——?jiǎng)趧?wù)員題庫
- 人教版小學(xué)數(shù)學(xué)五年級下冊教材分析
- 省十一屆人大三次會議秘書處工作總結(jié)
評論
0/150
提交評論