導航:首頁 > 操作系統 > android相機代碼

android相機代碼

發布時間:2022-09-01 11:44:42

android 開發,調用相機的相關代碼

/**
* @Description 調用系統相機照相,獲取原圖像
* @param activity 就是你的mainactivity
* @param dir 拍照後保存在本地的圖片路徑
* @param filename 圖片的名稱
* @param cmd 返回的requestCode

* @return void
*/
public static boolean takePhoto(final Activity activity, final String dir,
final String filename, final int cmd) {
String filePath = dir + filename;

// final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.d("test", "MediaStore.ACTION_IMAGE_CAPTURE"
+ android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE == null ? "android.media.action.IMAGE_CAPTURE"
: android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final File cameraDir = new File(dir);
if (!cameraDir.exists()) {
// return false;
cameraDir.mkdirs();
}

final File file = new File(filePath);
final Uri outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
try {
activity.startActivityForResult(intent, cmd);

} catch (final ActivityNotFoundException e) {
return false;
}
return true;
}

然後在你的onactivityforresult方法里寫:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

switch (requestCode) {
case PHOTOGRAPH://拍照
if (resultCode == RESULT_OK) {
String url = FileHelper.Get_SDCardPath() + Constant.HHXH_IMGDIR
+ BitmapUtil.tempPhoto;//圖片路徑,和你前面調用相冊時設的路徑一樣
Bitmap bitmap = BitmapUtil
.extractThumbNail(url, 480, 320, true);//這里是根據本地路徑獲取圖片並壓縮的,這個我寫的代碼比較多就不上傳了
findviewbyid(R.id.imgPhoto).setImageBitmap(bitmap);

}
}
}

② Android調用照相機和百度地圖開發,百度地圖顯示界面覆蓋了相機界面,求大神解答

android手機有自帶的照相機和圖庫,我們做的項目中有時用到上傳圖片到伺服器,今天做了一個項目用到這個功能,所以把我的代碼記錄下來和大家分享,有需求的朋友可以參考下

android手機有自帶的照相機和圖庫,我們做的項目中有時用到上傳圖片到伺服器,今天做了一個項目用到這個功能,所以把我的代碼記錄下來和大家分享,第一次寫博客希望各位大神多多批評。

首先上一段調用android相冊和相機的代碼:

復制代碼
代碼如下:

Intent intent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);//調用android自帶的照相機
photoUri =
MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
startActivityForResult(intent,
1);

復制代碼
代碼如下:

Intent i = new Intent(Intent.ACTION_PICK,

android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//調用android的圖庫

startActivityForResult(i, 2);

復制代碼
代碼如下:

@Override
protected void
onActivityResult(int requestCode, int resultCode, Intent data) {

//完成照相後回調用此方法
super.onActivityResult(requestCode, resultCode, data);

case 1:
switch (resultCode) {
case Activity.RESULT_OK://照相完成點擊確定

String sdStatus = Environment.getExternalStorageState();
if
(!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 檢測sd是否可用

Log.v("TestFile", "SD card is not avaiable/writeable right now.");

return; }
Bundle bundle = data.getExtras();
Bitmap bitmap = (Bitmap)
bundle.get("data");// 獲取相機返回的數據,並轉換為Bitmap圖片格式
FileOutputStream b = null;

File file = new File("/sdcard/pk4fun/");
file.mkdirs();//
創建文件夾,名稱為pk4fun //
照片的命名,目標文件夾下,以當前時間數字串為名稱,即可確保每張照片名稱不相同。網上流傳的其他Demo這里的照片名稱都寫死了,則會發生無論拍照多少張,後一張總會把前一張照片覆蓋。細心的同學還可以設置這個字元串,比如加上「IMG」字樣等;然後就會發現sd卡中myimage這個文件夾下,會保存剛剛調用相機拍出來的照片,照片名稱不會重復。

String str = null;
Date date = null;
SimpleDateFormat format = new
SimpleDateFormat("yyyyMMddHHmmss");// 獲取當前時間,進一步轉化為字元串
date = new
Date(resultCode);
str = format.format(date);
String fileName =
"/sdcard/myImage/" + str + ".jpg";
sendBroadcast(fileName);
try {
b
= new FileOutputStream(fileName);

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把數據寫入文件
} catch
(FileNotFoundException e) {
e.printStackTrace();
} finally {
try {

b.flush();
b.close();
} catch (IOException e) {

e.printStackTrace();
}
} break;
case Activity.RESULT_CANCELED://
取消
break;
}
break;
case 2:
switch (resultCode) {
case
Activity.RESULT_OK: {
Uri uri = data.getData();
Cursor cursor =
mActivity.getContentResolver().query(uri, null,
null, null, null);

cursor.moveToFirst();
String imgNo = cursor.getString(0); // 圖片編號

String imgPath = cursor.getString(1); // 圖片文件路徑
String imgSize =
cursor.getString(2); // 圖片大小
String imgName = cursor.getString(3); // 圖片文件名

cursor.close();
// Options options = new BitmapFactory.Options();
//
options.inJustDecodeBounds = false;
// options.inSampleSize = 10;
//
Bitmap bitmap = BitmapFactory.decodeFile(imgPath, options);
}
break;

case Activity.RESULT_CANCELED:// 取消
break;
}
break;
}

③ android手機指令對應的信息用代碼執行顯示,如輸入:*#06#可以顯示IMEI串碼,不知道程序要調用什麼代碼

程序要調用使用代碼為*#*#4636#*#* 可以進入工程模式,可以開手機網關,也可以查手機電池信息 是否原裝。安卓手機系統代碼命令有以下方法:
1、*#*#4636#*#* 顯示手機信息、電池信息、電池記錄、使用統計數據、WIFI信息
2*#*#7780#*#* 重設為原廠設定,不會刪除預設程序及SD卡檔案
3、*2667*3855# 重設為原廠設定,會刪除SD卡所有檔案
4、*#*#34971539#*#* 顯示相機相機韌體版本,或更新相機韌體
5、*#*#7594#*#* 當長按關機按鈕時,會出現一個切換手機模式的窗口,可以用這個代碼,直接變成關機按鈕
6、*#*#273283*255*663282*#*#* 開啟一個能讓你備份媒體文件的地方,例如相片、聲音等
7、*#*#197328640#*#* 啟動服務模式,可以測試手機部分設置及更改設定WLAN、GPS及藍牙測試代碼
8、*#*#232338#*#* 顯示WIFI MAC地址
9、*#*#1472365#*#* GPS測試
10、*#*#1575#*#* 其他GPS測試
11、*#*#232331#*# 藍牙測試
12、*#*#232337#*# 顯示藍牙裝置地址
13、*#*#8255#*#* 啟動GTALK服務監視器
各項硬體測試
1、*#*#0283#*#* Packet Loopback
2、*#*#0*#*#* LCD測試
3、*#*#0842#*#* 裝置測試,如震動、亮度
4、*#*#2663#*#* 觸控屏幕版本
5、*#*#2664#*#* 觸控屏幕測試
6、*#*#0588#*#* 接近感應器測試
7、*#*#3264#*#* 內存版本
8、*#06# 顯示手機原廠出廠串號(移動通信國際識別碼)

④ Android 如何調用相機或相冊,設置不同兩張圖片在兩個圖片控制項上 求代碼

遇到android項目導入出現後重復空包等錯誤,往往是導入的java編譯級別有關,點擊項目properties->

java Compiler ->修改Compiler compliance level 一般是1.6。

修改完成clean項目之後,往往還會遇到:

gen already exists but is not a source folder. Convert to a source folder or rename it的錯誤。

遇到這個問題的解決方法:

1. 右鍵點擊工程,選擇 "Properties"

2. 選擇左邊的 "Java Build Path"

3. 打開 "Source" 標簽面板

4. 點擊 "Add Folder..."

5. 勾選 "gen" 文件夾,點擊OK,點擊YES,再點擊OK

6. 最後右鍵點擊工程,選擇 "Andriod Tools" 裡面的 "Fix Project Properties"

⑤ Android怎麼調用系統相冊將選中的圖片設置為布局的背景,有沒有案例或源碼

Android中調用系統相機來拍攝照片的代碼,如下:
1、首先設置Uri獲取判斷以及相機請求Code
public final int TYPE_TAKE_PHOTO = 1;//Uri獲取類型判斷

public final int CODE_TAKE_PHOTO = 1;//相機RequestCode
2、調起系統相機
Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = getMediaFileUri(TYPE_TAKE_PHOTO);
takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
startActivityForResult(takeIntent, CODE_TAKE_PHOTO);
3、封裝獲取Uri代碼
public Uri getMediaFileUri(int type){
File mediaStorageDir = new File(Environment.(Environment.DIRECTORY_PICTURES), "相冊名字");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
//創建Media File
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == TYPE_TAKE_PHOTO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
} else {
return null;
}
return Uri.fromFile(mediaFile);
}
4、相機拍照完畢後獲取返回數據,並在頁面顯示照片
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case CODE_TAKE_PHOTO:
if (resultCode == RESULT_OK) {
if (data != null) {
if (data.hasExtra("data")) {
Log.i("URI", "data is not null");
Bitmap bitmap = data.getParcelableExtra("data");
imageView.setImageBitmap(bitmap);//imageView即為當前頁面需要展示照片的控制項,可替換
}
} else {
Log.i("URI", "Data is null");
Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath());
imageView.setImageBitmap(bitmap);//imageView即為當前頁面需要展示照片的控制項,可替換
}
}
break;
}
}
特殊:
一般情況,以上代碼在Android7.0以下,也就是api<24時,運行是沒有任何問題的。可是當targetSdkVersion變成24及其以上並且在android7.0(及以上版本)系統運行時,會拋出異常:FileUriExposedException。

⑥ android 用AlertDialog啟用相機許可權的代碼怎麼寫啊

/**
* @Description 調用系統相機照相,獲取原圖像
* @param activity 就是你的mainactivity
* @param dir 拍照後保存在本地的圖片路徑
* @param filename 圖片的名稱
* @param cmd 返回的requestCode

* @return void
*/
public static boolean takePhoto(final Activity activity, final String dir,
final String filename, final int cmd) {
String filePath = dir + filename;

// final Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.d("test", "MediaStore.ACTION_IMAGE_CAPTURE"
+ android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE == null ? "android.media.action.IMAGE_CAPTURE"
: android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final File cameraDir = new File(dir);
if (!cameraDir.exists()) {
// return false;
cameraDir.mkdirs();
}

final File file = new File(filePath);
final Uri outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
try {
activity.startActivityForResult(intent, cmd);

} catch (final ActivityNotFoundException e) {
return false;
}
return true;
}

然後在你的onactivityforresult方法里寫:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);

switch (requestCode) {
case PHOTOGRAPH://拍照
if (resultCode == RESULT_OK) {
String url = FileHelper.Get_SDCardPath() + Constant.HHXH_IMGDIR
+ BitmapUtil.tempPhoto;//圖片路徑,和你前面調用相冊時設的路徑一樣
Bitmap bitmap = BitmapUtil
.extractThumbNail(url, 480, 320, true);//這里是根據本地路徑獲取圖片並壓縮的,這個我寫的代碼比較多就不上傳了
findviewbyid(R.id.imgPhoto).setImageBitmap(bitmap);

}
}
}

⑦ 一個關於android的問題,我通過下面的方法調用相機,可是怎麼可以在拍照結束後獲取照片的路徑呢

Android調用系統拍照的代碼:

  1. 創建Intent Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

    String imagePath = Environment.getExternalStorageDirectory() + "/image" ;

  2. 設置文件路徑 File file = new File(imagePath);

    if(!file.exists()){

    file.mkdirs(); }

  3. 設置URI,指定相冊拍照後保存圖片的路徑,Uri imageUri = Uri.fromFile(new File(imagePath, "image.jsp"));

    openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);

    startActivityForResult(openCameraIntent, REQUEST_CODE_TAKING_PICTURES);

  4. 拍照完以後,文件就會保存在這個指定的目錄下了。Uri 里指定了相機拍照的路徑。

⑧ Android 自定義相機對焦問題

1、首先創建回調方法,代碼如下:

觸屏調用:設置surfaceView的觸屏事件,在該事件中實現camera回調。

閱讀全文

與android相機代碼相關的資料

熱點內容
程序員可以干什麼 瀏覽:70
績效考核權重分配演算法 瀏覽:524
android應用logo 瀏覽:898
光遇安卓服墓土商店什麼時候開 瀏覽:566
月收益翻倍的源碼 瀏覽:636
asop源碼放在哪裡 瀏覽:989
電腦伺服器密碼怎麼找 瀏覽:574
jdp轉換pdf 瀏覽:749
把pdf導入iphone 瀏覽:508
米哈游租賃的雲伺服器是哪個 瀏覽:524
android直接打電話 瀏覽:1016
ubuntu停止命令 瀏覽:283
cnc攻絲編程 瀏覽:869
換個手機號碼app怎麼注冊 瀏覽:320
怎麼下載小猴口算app 瀏覽:115
輕鏈app的貨怎麼樣 瀏覽:625
電腦里的u盤如何加密 瀏覽:371
我的世界全部版本伺服器下載地址 瀏覽:50
交換原理pdf 瀏覽:230
菜鳥驛站app怎麼邀請新人 瀏覽:449