❶ ucrop 怎麼在android studio中使用
1 uCrop簡介
最近項目中用到了圖片裁剪功能,於是網路了一下,發現了uCrop這個框架,這個框架的星星數很多,就決定使用這個框架
uCrop的Github地址:https://github.com/Yalantis/uCrop
uCrop的特點:
裁剪框不動,圖片動 圖片可以旋轉,縮放 支持各種比例裁剪框
uCrop的效果圖(來自其Github):
2 集成uCrop
(1) uCrop集成方法:
compile 'com.yalantis:ucrop:1.4.1'
(2) 修改當前項目的build.gradle文件,修改後代碼如下:
android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
applicationId 'com.test'
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName '1.0'
}
....
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.yalantis:ucrop:1.4.1'
}
注意:修改了targetSdkVersion後com.android.support:appcompat-v7的版本也要相匹配
雖然使用maven依賴的話即使appcompat-v7的版本不匹配也沒有關系,但使用aar文件則會報錯,所以建議你修改了compileSdkVersion 後也要修改appcompat-v7的版本,搞不好就會遇到問題
(3) 如果你沒有23版本的sdk,也就是Android 6.0的sdk,則要啟動sdk manger去下載,同時也要下載Android SDK Build-tools 23.0.2,如下圖:
(4) 修改gradle插件的版本
修改整個project最外面的全局build.gradle文件的gradle版本:
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
}
(5) 下載最新的gradle
Gradle下載地址:http://services.gradle.org/distributions
目前最新版本是gradle-2.13-rc-2-all.zip,下載完成後解壓,然後在Android Studio中指定gradle的地址,如下圖所示:
要使用2.0以上版本的gradle插件,必須使用2.10以上的gradle,注意gradle插件和gradle是兩個東西,前者是Android Studio的插件,後者是獨立的東西
(6) 准備工作完畢,同步代碼,uCrop已經集成到我們的項目中去了,是不是很麻煩?不然我寫這篇文章幹嘛。
注意:uCrop必須使用23及以上版本的sdk,gradle插件版本必須2.0.0及以上,gradle版本必須2.10及以上,appcompat-v7版本必須23.0及以上
如果以上都滿足了,應該就不會報錯了。至於為什麼非要23以上的sdk,因為uCrop使用了Android 6.0的新特性:VectorDrawable
3 uCrop的用法
(1) 在AndroidManifest.xml中添加UCropActivity,代碼如下:
<activity
android:name='com.yalantis.ucrop.UCropActivity'
android:screenOrientation='portrait'
android:theme='@style/Theme.AppCompat.Light.NoActionBar'/>
(2) 在AndroidManifest.xml中添加許可權:
<uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE'/>
<uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/>
<uses-permission android:name='android.permission.INTERNET'/>
❷ (譯)uCrop介紹 —— 我們自己的Android圖片裁剪庫
原文鏈接: https://yalantis.com/blog/introcing-ucrop-our-own-image-cropping-library-for-android
譯者: Eirture
我們在 Yalantis 開發了許多不同的 Android 應用,經驗告訴我們,幾乎在所有的應用中,都需要圖片裁剪的功能。圖片裁剪的用途很廣,從簡單的用戶頭像調整到圖片的比例裁剪、靈活變換等各種復雜的處理。
我們想為所有的用戶提供最好的圖片處理工具,所以決定創建Android的圖片裁剪庫 uCrop 。 可以在 Proct Hunt 上為 uCorp 投票。
也許你會好奇,為什麼我們不使用現成的 Android 圖片裁剪解決方案。 畢竟,可以在 Github 或者 Android Arsenal 上找到很多這類的庫。但是問題是,那些解決方案都不滿足我們的需求。我們來看一些主流的開源圖片裁剪庫,為什麼不符合我們的需求。
我在幾個項目裡面使用了 SoundCloud 庫很成功,但是仍然有幾個問題讓我很頭痛。
首先,你操作的是一個裁剪的框,而不是圖片本身。當需要裁剪一個很小面積的圖片時,這會你感覺有點痛苦。這是與用戶使用習慣向悖的。我確信 Instagram 傳授給我們的是一些優秀的 UX (用戶體驗),可以移動的裁剪框也已經滅絕了。
其次,SoundCloud 裁剪庫不允許用戶旋轉圖片。Come on, guys! 所有人都知道,有成百上千「不可思議」的安卓手機給照片設置了錯誤的EXIF信息(謝天謝地,我們有 CWAC 來清理這個爛攤子)。而且,很大部分的用戶是希望能夠轉動圖片的(不僅僅是 90 度)。
最後同樣重要的一點,使用 SoundCloud 庫不能改變長寬比。當然,如果你使用它僅僅是需要獲取一個方形的頭像,那沒有任何問題。但是,其它很多很有趣的頭像形狀,用這個庫無法實現。
Scissors 是一個新的庫,不久前我在一個 安卓問題周刊 上看到它的時候特別激動。但 5 分鍾內我的興奮就消失了。引用一句關於 Scissors 的 博文 :
這確實是一個值得稱贊的方法。實際上,我們找到又是一個不能旋轉圖片,也不能動態調整寬高比的庫。盡管 Scissors 集成了一些主流的圖片載入庫,像 Picasso , Glide 以及 Universal Image Loader 。希望 Scissors 在後續的版本中有更多實用的功能。
分析完這些現有庫的缺點,我們決定創建 自己的庫 ,支持手勢並且有一個良好的 UX。
安卓庫 uCrop 允許你修剪圖片來更好的使用。uCrop 重要的特性如下:
uCrop 有一個初始化的構建類型介面,來為你的應用配置一些適當的屬性。uCrop 庫最低的版本要求是 API 10,示例應用工作的版本是 API 15+ 。
你可以改變下面這個設置:
在下一篇文章中,將會展示我們構建 uCrop 的經歷,敬請關注!