當前位置:首頁 » 安卓系統 » android相機demo

android相機demo

發布時間: 2023-01-08 13:19:02

⑴ 如何獲得Surfaceview android的普通相機的看法

SurfaceView是View的子類,它內嵌了一個專門用於繪制的Surface,你可以控制這個Surface的格式和尺寸,Surfaceview控制這個Surface的繪制位置。surface是縱深排序(Z-ordered)的,說明它總在自己所在窗口的後面。SurfaceView提供了一個可見區域,只有在這個可見區域內的surface內容才可見。surface的排版顯示受到視圖層級關系的影響,它的兄弟視圖結點會在頂端顯示。這意味者 surface的內容會被它的兄弟視圖遮擋,這一特性可以用來放置遮蓋物(overlays)(例如,文本和按鈕等控制項)。注意,如果surface上面有透明控制項,那麼每次surface變化都會引起框架重新計算它和頂層控制項的透明效果,這會影響性能。SurfaceView默認使用雙緩沖技術的,它支持在子線程中繪制圖像,這樣就不會阻塞主線程了,所以它更適合於游戲的開發。 SurfaceView的使用首先繼承SurfaceView,並實現SurfaceHolder.Callback介面,實現它的三個方法:surfaceCreated,surfaceChanged,surfaceDestroyed。surfaceCreated(SurfaceHolder holder):surface創建的時候調用,一般在該方法中啟動繪圖的線程。surfaceChanged(SurfaceHolder holder, int format, int width,int height):surface尺寸發生改變的時候調用,如橫豎屏切換。surfaceDestroyed(SurfaceHolder holder) :surface被銷毀的時候調用,如退出遊戲畫面,一般在該方法中停止繪圖線程。還需要獲得SurfaceHolder,並添加回調函數,這樣這三個方法才會執行。SurfaceView實戰下面通過一個小demo來學習SurfaceView在實際項目中的使用,繪制一個精靈,該精靈有四個方向的行走動畫,讓精靈沿著屏幕四周不停的行走。

⑵ Android調用系統相機實現拍照和視頻錄制

(1)申請許可權

(2)設置布局

這里做了一個簡單的布局:添加了一個按鈕和一個ImageView控制項用於顯示拍攝的圖像。

(3)為按鈕添加點擊事件監聽

點擊按鈕時,調用系統相機進行拍照,並在確定後將圖像顯示在ImageView控制項中。

(1)申請許可權

(2)設置布局

添加了一個按鈕和一個VideoView控制項用於顯示錄制的視頻。

(3)為按鈕添加點擊事件監聽

同前面一樣,點擊按鈕後調用系統相機進行錄制視頻,錄制完成後點擊確定即可將錄制的視頻顯示在VideoView控制項中。

對於Android11.0的版本,在調用系統相近進行視頻錄制的時候,即使在AndroidMenifest.xml中申請了CAMERA許可權,還是會在程序運行時報錯: Permission  Denial ,   . .... ....  with revoked permission android.permission.CAMERA

解決方法是在程序中動態申請許可權:

寫在最後:文章是在學習過程中做的學習筆記,同時與志同道合者分享,文章內容均經過我自己實驗證實可行,如有問題歡迎留言,很高興一起交流討論,共同進步!

⑶ 請各位大神給我一個Android照相並且上傳到伺服器的demo。最好能夠下載圖片和相關參數。萬分感謝。。。

http://www.eoeandroid.com/forum-27-1.html上有很多相關的demo

⑷ 做了一個Android的demo實現頭像裁剪上傳,但是拍照完成後出現如下圖問題,圖庫也一樣大神們幫忙看看

實現思維路徑:
以進入相機拍照的思維路線為例子:
1.進入app
2.判斷之前是否保存頭像,如果有就顯示歷史圖像 (下面代碼中在getOldAvatar();方法中執行這個邏輯)
3.點擊更換圖像的Button或者布局,啟動對話框(下面代碼中在dialogueBox();方法執行這個邏輯)
4.系統版本判斷授權方式(靜態還是動態授權),判斷之前是否已經授權 (setPermissions(Permissions_CAMERA_KEY);這個方法執行授權邏輯)
5.如果是首次授權,就執行首次授權完成後馬上運行的回調方法 onRequestPermissionsResult
5.判斷完成不管是否是首次授權還是之前就是授權過了都要執行enterCamera();方法啟動相機並且發送攜帶數據的請求
6.啟動相機完成後,並且拍照完成退出相機,都要運行Intent返回數據請求回調方法onActivityResult。將傳入的數據傳入到cropPhoto(data.getData());方法里去執行圖片剪裁。
7.在cropPhoto方法里將攜帶數據跳轉到裁剪界面中裁剪圖片,裁剪完成後又要回到onActivityResult回調方法里,執行裁剪完的數據回調工作。

8.在onActivityResult回調方法里,裁剪完的圖片將運行setPicToView 方法保存圖片。保存的圖片將在下次啟動activity時作為歷史頭像調用。

package com.example.lenovo.mydemoapp;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.StrictMode;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

⑸ android demo是什麼意思

游戲中的「DEMO」 在游戲正式版發售之前,官方為了進行宣傳和壓力測試,而放出的不完全版本,通常稱為「試玩版」。

開發中 DEMO 是列子開發, 不知道是不是你想要的

⑹ android 怎麼從相機上傳照片demo

DEMO的時候. 在控制台輸入: record空格X(X代表你DEMO的名稱)回車.錄像開始. stop停止錄像. playdemo空格X(播放你所有的DEMO.X代表DEMO的名稱) 停止後在你CS/反恐精英/目錄下搜索DEMO的名子.

⑺ Android app製作,有一個demo,是分享照片到微信的,可以分享照片也可以拍照分享,可是一拍照就崩潰

飛機不怕遭雷劈
最近西雅圖兩架飛機被閃電擊中,但飛機和乘客都安然無恙,有人說飛機都有防雷裝置,所以不怕遭雷劈,果真如此?
真假求真相

⑻ Android多媒體(相機,相冊,播放視頻)使用

創建全局變數

在onCreate方法裡面設置點擊事件

先判斷Android版本是否低於7.0,再根據判斷結果選擇不同的方式創建Uri(因為安卓7.0後直接使用本地真實路徑被認為是不安全的)
FileProvider是contentProvider

系統會找出能響應這個Intent的Activity,即相機,在通過startActivityForResult得到拍攝結果

1.定義全局變數fromAlbum
2.添加點擊事件
3.修改onActivityResult方法

(音頻文件放在assets文件夾下)

(視頻文件放在raw文件夾下)

⑼ Android進階——你所知道的Camera2和你所不知道的Camera2完全解析

一切源於在項目過程中的一個Bug:我的需求是在MainActivity 實現自動預覽,也可以點擊跳到簽到SignedActivity去實現拍照簽到,第一次進入界面的時候都是正常的,但是有時候返回來的時候預覽失敗,即從MainActivity跳轉到SignedActivity偶爾預覽失敗和從SignedActivity返回MainActivity偶爾失敗,都是報(CAMERA_IN_USE)ERRO=1的錯誤,奇怪的是的的確確做了完全釋放操作,加上以前用的更多的是Camera api 對於Camer2 的機制沒有完整去研究過,一下子懵了,於是乎先去找了Stack Overflow,查到一個解決方案是:"我棄用了新API,換回舊API",ORZ,找了其他的也沒有答案,可是我不服呀,我就把官方的文檔全部啃了一遍,於是乎便有了以下的理解,我想如果你不懂得怎麼使用Camera2的話,這篇絕對值得你去閱讀,你會發現Camera2 並非像大多數說得那樣使用起來很復雜。

全新的android.hardware.Camera2 。Android 5.0對拍照API進行了全新的設計,新增了全新設計的Camera 2 API,這些API不僅大幅提高了Android系統拍照的功能,還能支持RAW照片輸出,甚至允許程序調整相機的對焦模式、曝光模式、快門等。

在Camera2 架構在核心參與類角色有: CameraManager CameraDevice CameraCharacteristics CameraRequest與CameraRequest.Builder CameraCaptureSession 以及 CaptureResult

位於android.hardware.camera2.CameraManager下,也是Android 21(5.0)添加的,和其他系統服務一樣通過 Context.getSystemService(CameraManager.class ) 或者 Context.getSystemService(Context.CAMERA_SERVICE) 來完成初始化,主要用於管理系統攝像頭:

CameraDevice是Camera2中抽象出來的一個對象,直接與系統硬體攝像頭相聯系。因為不可能所有的攝像頭都會支持高級功能(即攝像頭功能可被分為limit 和full 兩個級別),當攝像頭處於limited 級別時候,此時Camera2和早期的Camera功能差不多,除此之外在Camera2架構中,CameraDevice還承擔其他兩項重要任務:

正如前面所說, 系統向攝像頭發送 Capture 請求,而攝像頭會返回 CameraMetadata,這一切都是在由對應的CameraDevice創建的CameraCaptureSession 會話完成 ,當程序需要預覽、拍照、再次預覽時,都需要先通過會話。(A configured capture session for a CameraDevice , used for capturing images from the camera or reprocessing images captured from the camera in the same session previously.A CameraCaptureSession is created by providing a set of target output surfaces to createCaptureSession , or by providing an InputConfiguration and a set of target output surfaces to for a reprocessable capture session . Once created, the session is active until a new session is created by the camera device, or the camera device is closed.)CameraCaptureSession一旦被創建,直到對應的CameraDevice關閉才會死掉。雖然CameraCaptureSession會話用於從攝像頭中捕獲圖像,但是只有同一個會話才能再次從同一攝像頭中捕獲圖像。另外, 創建會話是一項耗時的非同步操作,可能需要幾百毫秒 ,因為它需要配置相機設備的內部管道並分配內存緩沖區以將圖像發送到所需的目標,因而createCaptureSession和會將隨時可用的CameraCaptureSession發送到提供的監聽器的onConfigured回調中。如果 無法完成配置,則觸發onConfigureFailed回調 ,並且會話將不會變為活動狀態。最後需要注意的是,如果 攝像頭設備創建了一個新的會話,那麼上一個會話是被關閉的,並且會回調與其關聯的onClosed ,如果不處理好,當會話關閉之後再次調用會話的對應方法那麼所有方法將會跑出IllegalStateException異常。關閉的會話清除任何重復的請求(和調用了stopRepeating()方法類似),但是在新創建的會話接管並重新配置攝像機設備之前,關閉的會話仍然會正常完成所有正在進行的捕獲請求。簡而言之,在Camera2中CameraCaptureSession承擔很重要的角色:

描述Cameradevice屬性的對象,可以使用CameraManager通過getCameraCharacteristics(String cameraId)進行查詢。

CameraRequest代表了一次捕獲請求, 而CameraRequest.Builder用於描述捕獲圖片的各種參數設置,包含捕獲硬體(感測器,鏡頭,快閃記憶體),對焦模式、曝光模式,處理流水線,控制演算法和輸出緩沖區的配置。 ,然後傳遞到對應的會話中進行設置, CameraRequest.Builder則負責生成CameraRequest對象 。當程序調用setRepeatingRequest()方法進行預覽時,或調用capture()方法進行拍照時,都需要傳入CameraRequest參數。CameraRequest可以通過CameraRequest.Builder來進行初始化,通過調用createCaptureRequest來獲得。

CaptureRequest描述是從圖像感測器捕獲單個圖像的結果的子集的對象。(CaptureResults are proced by a CameraDevice after processing a CaptureRequest)當CaptureRequest被處理之後由CameraDevice生成。

CameraManager 處於頂層管理位置負責 檢測獲取所有攝像頭及其特性 傳入指定的CameraDevice.StateCallback回調打開指定攝像頭 CameraDevice 是負責管理抽象對象,包括 監聽Camera 的狀態回調CameraDevice.StateCallback 創建CameraCaptureSession和CameraRequest CameraCaptureSession 用於描述一次圖像捕獲操作,主要負責 監聽自己會話的狀態回調CameraCaptureSession.StateCallback CameraCaptureSession.CaptureCallback捕獲回調 ,還有 發送處理CameraRequest CameraRequest 則可以看成是一個"JavaBean"的作用用於描述希望什麼樣的配置來處理這次請求;最後三個回調用於監聽對應的狀態。

CameraManager 處於頂層管理位置負責檢測 檢測獲取所有攝像頭並設置輸出參數,傳入指定的CameraDevice.StateCallback回調,然後打開指定攝像頭,並觸發CameraDevice.StateCallback中的onOpened方法,並在onOpened方法里開始通過調用創建預覽會話, ,CameraDevice負責創建請求 CameraCharacteristics CameraRequest與CameraRequest.Builder CameraCaptureSession 以及 CaptureResult 則可以看成是一個JavaBean的作用用於描述以什麼樣的配置來處理這次請求。

Camera2Helper類只是簡單的封裝了下,為了讓Camera2的初始化和Activity 高度分離,這個類只是Demo 階段部分有待優化,另外結合我具體的業務,對於圖片大小有限制,所以我都是默認採用采樣壓縮率方式對圖片進行壓縮

⑽ 寫了一個小的android demo,從系統相冊去選取圖片,發現只能單選,問下大神,有沒有方式可以多選的

系統相冊(Gallery widget)預設情況下,並不支持一次多選圖片功能。
你可以擴展Gallery View 組件,在每個圖片旁放一個CheckBox,這樣就可以實現多選了,稍微麻煩了一些.
你可以在谷歌搜索中輸入:Android custom image gallery with checkbox in grid to select multiple
就找到相應的方法。
Good Luck!

熱點內容
破解exe加密視頻 發布:2025-05-17 11:23:41 瀏覽:976
我的世界伺服器圈太大了怎麼辦 發布:2025-05-17 11:15:21 瀏覽:614
便宜的免費雲伺服器 發布:2025-05-17 11:08:50 瀏覽:776
中國頂級dhcp解析伺服器地址 發布:2025-05-17 11:06:27 瀏覽:34
php轉義html 發布:2025-05-17 11:04:00 瀏覽:567
鋼筋籠加密區規范 發布:2025-05-17 10:59:50 瀏覽:4
我的世界網易手機版主播伺服器房號 發布:2025-05-17 10:40:59 瀏覽:227
豎編譯 發布:2025-05-17 09:56:08 瀏覽:229
編程畫飛機 發布:2025-05-17 09:54:03 瀏覽:803
手機如何解鎖密碼屏幕鎖怎麼刪除 發布:2025-05-17 09:52:04 瀏覽:125