



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(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ù),希望對(duì)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對(duì)象: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對(duì)象: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的返回值會(huì)被設(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保安人員勞動(dòng)合同保安人員合同
- 辦公家具定點(diǎn)采購合同
- 洗車機(jī)施工方案
- 小區(qū)商鋪裝飾裝修協(xié)議書
- 九龍坡屋頂漏水施工方案
- 《陶淵明集》序 賞析
- 南充硅pu籃球場施工方案
- 建筑工程廉潔監(jiān)理合同協(xié)議-@-1
- 泄流箱涵施工方案
- 遼河吹填施工方案
- 同濟(jì)大學(xué)信紙
- panasonic樣本搜索光盤
- 項(xiàng)目申報(bào)表雙語教學(xué)示范課程建設(shè)項(xiàng)目
- 工作交接表excel模板
- (完整word版)新《中華頌》朗誦稿
- 朗讀技巧與方法指導(dǎo)
- 《中小學(xué)美術(shù)教學(xué)論》第一章 美術(shù)教學(xué)論及其研究的對(duì)象
- 焊接專業(yè)英語詞典
- 糖尿病健康教育及飲食指導(dǎo)
- PFMEA模板完整版文檔
- 三無曲線(有緩)繩正法撥道自動(dòng)計(jì)算表
評(píng)論
0/150
提交評(píng)論