1. 程式人生 > >呼叫 android 自身裁剪功能

呼叫 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 自身裁剪功能

在Android作業系統下可通過程式設計實現對視訊影象進行抓拍並對圖片的裁剪與上傳功能。簡單的實現方法採用Android 自帶有關於照片的自由裁剪,非常適用及視訊抓拍的介面功能。 一、視訊抓拍 1、基本類 Android 框架通過 Camera API 或者 camer I

Android 呼叫相機相簿帶裁剪功能

提供一個相機相簿功能,帶裁剪的,只是在類裡面寫了幾個方法,很簡單的,呼叫只需要一個方法,之前提供的一個工具類聽不方便了,現在給大家推薦一個好用的方法,如果放到工具類裡面也會很清晰明瞭的。 第一步就是要新增許可權了: <uses-permission android:

Android完美呼叫系統相機、相簿以及裁剪功能

在 Android應用中,很多時候我們需要實現上傳圖片,或者直接呼叫手機上的拍照功能拍照處理然後直接顯示並上傳功能,下面將講述呼叫相機拍照處理圖片然後顯示和呼叫手機相簿中的圖片處理然後顯示的功能,要想實現上傳功能,一般都是上傳到資料庫中,將imageView中的

Android 系統自帶圖片裁剪功能(適配7.0、8.0、對了還有小米手機)

前段時間寫了如何獲取相簿和拍照之後的照片並且進行顯示和上傳,這一次是如何進行圓形影象製作,經常看我寫的筆記的人會知道,我很懶。那麼我就懶的自定義了,目前需求就用原生的就好了,大神的輪子,我會在後面進行推薦。這篇筆記是依賴於:Android呼叫相簿、相機(相容6.0、7.0、8.0) 文

H5呼叫Android圖片上傳功能

public class OpenFileWebChromeClient extends WebChromeClient { public static final int REQUEST_FILE_PICKER = 1; public ValueCallback<Uri> mF

Android中Xposed框架篇---修改系統位置資訊實現自身隱藏功能

一、前言前文已經介紹了Xposed框架的基本使用規則,本文主要來介紹一個實際案例就是如何通過這個框架來修改系統的地理位置資訊來實現隱藏功能,在如今社交工具的發展特別是微信,他有一個實時位置共享功能,那麼

React Native呼叫Android原生程式碼實現車牌識別功能【附效果圖附原始碼】

        這段時間研究了下React Native,Facebook推出的,結合了Web應用和Native應用的優勢,可以使用JavaScript來開發iOS和Android原生應用,決定簡單研究下,於是開始搭建環境,編寫HelloWorld,完成後又覺得HelloWo

Android中Xposed框架篇-修改系統位置資訊實現自身隱藏功能

本文轉載自Android中Xposed框架篇—修改系統位置資訊實現自身隱藏功能 前文已經介紹了Xposed框架的基本使用規則,本文主要來介紹一個實際案例,就是如何通過這個框架來修改系統的地理位置資訊來實現隱藏功能。在如今社交工具的發展特別快,微信有一個實時位置

Delphi xe7 up1 呼叫android振動功能

Delphi xe7 up1 呼叫android振動功能 振動用到以下4個單元: Androidapi.JNI.App,Androidapi.JNIBridge,Androidapi.JNI.Os,Androidapi.Helpers 使用方法: var  &

Android自定義圖片選取器,類似微信樣式,自帶裁剪功能,適配Android7.0

不知道為什麼README文件在github上排版格式全亂了,所以寫個部落格當文件看吧 ImagePicker 這是一個Android使用的自定義圖片選擇器,眾所周知,Android碎片化問題嚴重,其中就包括圖片選擇的問題,呼叫系統相簿選擇圖片或裁剪圖片時

實現呼叫Android手機的拍照功能

package com.ljq.test; import java.io.ByteArrayOutputStream; import java.io.File; import android.app.Activity; import android.content.Intent; import and

Android拍照和相簿+系統裁剪功能返回圖片

最近在使用一加3手機,Android系統6.0,進行測試的時候,發現呼叫手機的拍照和相簿選擇圖片的功能返回的時候都無法呼叫系統的裁剪功能,Log日誌也沒有輸出有用的資訊。經過在網上大量的查詢資料,拍照的問題解決了,但是用網上提供的方法都無法進行相簿選擇圖片後進行裁剪。 測試

android H5呼叫微信支付功能之坑慘了

一路過關一路坑,1:微信開發平臺在建立應用時跟debug和release 包沒什麼關係,主要看的是包名、簽名、APP ID、商戶ID、金鑰、訂單號、隨機時間msgApi = WXAPIFactory.createWXAPI(this, "APP ID"); msgApi.re

QtAndroid詳解(4):JNI呼叫Android系統功能(1)

前面幾篇我們講解了 QtAndroid 名字空間的基本用法,這次我們使用前面講過的方法和類庫,展示一些簡單的小示例。我在《Qt on Android核心程式設計》一書中主要通過“繼承 QtActivity ,實現自己的 Activity 並新增 static 方法”這種形式來呼叫 Android 系統的一

Android之圓形頭像(實現相機拍攝+相簿選擇+圖片裁剪功能

功能實現:點選圓形頭像之後可以實現相簿上傳或者開啟相機,然後把得到的圖片經過剪裁,把剪裁過的圖片設定為頭像的背景圖 步驟:第一步:自定義一個類,繼承ImageView,重寫draw方法,實現外觀為圓形 第二步:在xml檔案中引用該控制元件 第三步:實現圓形頭像的點選事件,點

android 呼叫原生圖片裁剪後的圖片尺寸縮放

在安卓開發中,如果對拍照後的圖片進行圖片裁剪,如果是呼叫系統的裁剪,如下: /* * 裁剪圖片 */ private void cropPhoto() { Intent intent = new Intent("com.android.camera.act

android UI——具有裁剪功能的imageview

從事android工作已經有半年了,積累了不少經驗,現在來部落格將一些自己的程式碼和知識整理下,也看能不能幫助下別人吧,自己也是一致靠著前輩們的努力一點一點積攢知識的。 這次我就來說下如何去實現一個裁剪圖片控制元件。正如很多程式中有的那樣,使用者可以通過操作一個檢視框對載

H5前端呼叫Android拍照功能

JS呼叫Android攝像頭拍照 產品經理要求H5要實現直接呼叫原生攝像頭完成拍照功能: 一開始也是糊塗,我們前端的哥們總說用JS可以直接呼叫,不用Android的Java程式碼,所以我一開始也信了,想了想不是那麼回事,可以呼叫也是通過原生封裝好的。

Android 7.0呼叫相機/相簿/裁剪

Android 呼叫相機/相簿/裁剪,6.0需要申請許可權,7.0有路勁安全問題 1、安全問題需要設定共享路勁,需要在AndroidManifest.xml裡的application下設定provid

Android開發分享功能實現步驟

集成 sha har sse 分享 功能 秘鑰 步驟 過去 參考mob官網(http://www.mob.com/) 分享實現步驟:1.mob官網賬號註冊登錄2.進入後臺,進入ShareSDK,添加應用,生成秘鑰3.參照mob官網集成文檔,下載SDK,進入ShareSDK