當前位置:首頁 » 安卓系統 » android裁剪框

android裁剪框

發布時間: 2022-12-17 22:58:35

『壹』 (譯)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 的經歷,敬請關注!

『貳』 如何在android開發中設計出一個四邊形(不是矩形,四邊均可一定)的照片裁剪框

裁剪框android自帶這樣的功能。
調用方式:
Intent intent = new Intent();
intent.setAction("com.android.camera.action.CROP");

intent.setDataAndType(mUri, "image/*");// mUri是已經選擇的圖片Uri
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);// 裁剪框比例
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 150);// 輸出圖片大小
intent.putExtra("outputY", 150);
intent.putExtra("return-data", true);
startActivityForResult(intent, 200);

『叄』 android手機壁紙裁剪框解析度 比例

去官方網站查詢下你是什麼手機,或者網上售賣的地方也能查到。之後用ps裁剪成合適尺寸的就可以了,屏幕解析度就是240*400的。比如我用的三星的i5800的android(安卓)系統的手機。然後用ps裁剪成這個尺寸放到手機就不失真了

『肆』 安卓系統裁剪時的「正在裁剪」彈框可以去掉嗎

不可以去掉,因為這個彈框表示正在裁剪操作,不然屏幕沒反應。

『伍』 調用 android 自身裁剪功能

在Android操作系統下可通過編程實現對視頻圖像進行抓拍並對圖片的裁剪與上傳功能。簡單的實現方法採用Android 自帶有關於照片的自由裁剪,非常適用及視頻抓拍的介面功能。
一、視頻抓拍
1、基本類
Android 框架通過 Camera API 或者 camer Intent 的方式,支持 捕捉圖像和視頻 。相關的大類主要有以下幾個:
(1) Camera 攝像時候必須調用到的類;
(2)SurfaceView 提供攝像頭預覽。
(3)MediaRecorder 錄像時候用到的類;
(4)Intent 如果不通過 Camera 對象來操控攝像頭,那麼用兩個intent 動作 MediaStore.ACTION_IMAGE_CAPTURE or MediaStore.ACTION_VIDEO_CAPTURE 也能夠實現攝影和錄像。
o MediaStore.ACTION_IMAGE_CAPTURE —— 向內置攝像頭程序請求圖像的意圖活動類型。
o MediaStore.ACTION_VIDEO_CAPTURE —— 向內置攝像頭程序請求視頻的意圖活動類型。

2、 Manifest 聲明
在使用Camera API前,必須做出使用 Camera 硬體的聲明。主要有下面 點:
(1) Camera 允許:(注意,如果是通過intent 意圖來操控的,則不需要下面聲明)
<uses-permission android:name="android.permission.CAMERA" />
(2)Camera 特徵,比如說名字
<uses-feature android:name="android.hardware.camera" />
(3)如果你要在SD卡中保存照片和視頻,那麼就得開啟SD卡許可權
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
(4)錄音許可權
<uses-permission android:name="android.permission.RECORD_AUDIO" />
(5)如果希望在照片中插入GPS當地信息,還得開啟GPS
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
3、使用方法
使用攝像頭的方法有兩種:
一種是編寫代碼比較少的,快速使用攝像頭的意圖Intent 方法;
另外一種就是 自動外觀的攝像頭用戶界面,要求編寫更多的代碼。
4、使用Intent 快速應用攝像頭:使用默認配置拍攝並保存

二、圖片自由裁剪
關鍵代碼如下:
public void imageCut(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
//開啟裁剪功能
intent.putExtra("crop", "true");
//設定寬高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
//設定裁剪圖片寬高
intent.putExtra("outputX", 100);
intent.putExtra("outputY", 100);
//要求返回數據
intent.putExtra("return-data", true);
startActivityForResult(intent, 100);
}
返回數據後直接在onActivityResult 里對返回的圖片數據進行顯示就行了,這里由於剪切後的圖片較小,個人覺得應該不用考慮OOM的問題,問題是,在調用自帶的裁剪功能的時候,由於沒看源碼,所以不知道在調整裁剪框的時候,顯示的那副圖片有沒有進行壓縮,如果沒有進行壓縮,那麼當圖片很大的時候,載入起來就很容易出現OOM了,明顯對此由於是調用官方的API,我沒有方法去解決它。唯一的辦法就是不用它,而是自己去寫一個,就可以避免這個問題。利用如下的代碼進行壓縮,很好地避免OOM問題。

『陸』 Android調用系統的圖片剪裁,剪裁框大小能設置嗎outputX和outputY不是

剪裁框大小可以設置,也可以手動拖動,outputX和outputY是用來指定輸出的圖片X Y軸的大小。


1.創建一個uri指向圖片路徑

Uri imageUri = Uri.parse(file:///sdcard/temp.jpg);


2.裁剪框設置代碼:

java">Intentintent=newIntent(Intent.ACTION_GET_CONTENT,null);
intent.setType("image/*");
intent.putExtra("crop","true");
//裁剪框比例
intent.putExtra("aspectX",2);
intent.putExtra("aspectY",1);
//圖片輸出大小
intent.putExtra("outputX",600);
intent.putExtra("outputY",300);
intent.putExtra("scale",true);
intent.putExtra("return-data",false);
intent.putExtra(MediaStore.EXTRA_OUTPUT,uri);
intent.putExtra("outputFormat",Bitmap.CompressFormat.JPEG.toString());
//不啟用人臉識別
intent.putExtra("noFaceDetection",false);
startActivityForResult(openAlbumIntent,PHOTO_ALBUM_REQUEST);


3.啟動裁剪即可

Intent takePhotoIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

takePhotoIntent .putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

startActivityForResult(takePhotoIntent , CAMERA_REQUEST);

『柒』 如何在android開發中設計出一個四邊形(不是矩形,四邊均可一定)的照片裁剪框

a=x/10000;/* */
b=x%10000/1000;/*
c=x%1000/100;/*
d=x%100/10;/*
e=x%10;/*

『捌』 使用Android系統自帶裁剪功能,小圖可能出現黑框的解決辦法

項目中或多或少的使用到照片裁剪,比如設置頭像之類的,正常情況下我們會使用一下方式調用系統的裁剪功能,簡單又方便。

黑框出現的情況
在我們裁剪的圖片比需求的圖片的要小一些時,就會出現黑框,出現這個情況,估計是系統在判斷圖片在沒有滿足大小時,會自動在四周繪制黑框填充。

解決辦法
在上面的方法中添加一下兩個參數,告訴系統把圖片拉伸到相應大小。

原文地址: https://www.jianshu.com/p/3559fe144e67

熱點內容
泰萌主為什麼安卓下載不了 發布:2025-03-29 07:16:56 瀏覽:732
手機優酷緩存慢 發布:2025-03-29 07:16:09 瀏覽:246
php時間1天 發布:2025-03-29 07:14:47 瀏覽:331
伺服器自動更改地址 發布:2025-03-29 07:08:17 瀏覽:271
社保網上賬號密碼是多少 發布:2025-03-29 06:50:56 瀏覽:995
ftp在線上傳工具 發布:2025-03-29 06:42:17 瀏覽:236
搭建wifi伺服器 發布:2025-03-29 06:39:22 瀏覽:227
怎麼下載奧特曼格鬥進化重生安卓 發布:2025-03-29 06:34:07 瀏覽:436
包貝爾超級訪問 發布:2025-03-29 06:20:48 瀏覽:468
ftp標題改版 發布:2025-03-29 06:20:46 瀏覽:950