當前位置:首頁 » 安卓系統 » android拍照null

android拍照null

發布時間: 2023-10-15 12:22:05

1. Android 使用系統相機拍照和讀取相冊照片

1.拍照 (對於7.0以上的版本,不在允許直接訪問uri)
`

若不指定輸出路徑intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri(srcActivity)); 在onActivityResult()中,通過

`
可以拿到uri,但獲得的圖片是被壓縮過的。若指定intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);輸出路徑,則此處的intent為null,但可以使用我們存的uri讀取照片,此時的照片沒有被壓縮。

2.從相冊中讀取照片, 方法:
`

`
即使設置 intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri(srcActivity));輸出路徑,仍然不能從此路徑中讀取,只能在onActivityForResult()中通過event.uri = intent.getData();方式獲得圖片uri。
此種現象也好理解,拍照時產生新的圖片,自然可根據設置的uri進行圖片保存,而讀取相冊時,圖片已經在目錄中不能轉移到自己設定的uri中。

Androidmanifest.xml中
`

在 res/xml/provider_paths.xml
`

<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path name="JDTobs" path=""/>
<files-path name="name" path="path" />
<cache-path name="name" path="path" /> <external-path name="name" path="path" />
<external-files-path name="name" path="path" />
<external-cache-path name="name" path="path" /> </paths> `

讀取uri

2. android camera.open一直返回null

看看你的相機是不是有些問題,用其他相機程序能不能打開,第二,是不是有些程序打開了相機沒有關閉,這樣你是獲取不到的

3. android調用手機拍照以及從相冊選擇照片需要判斷版本號嗎

舉個實際例子看看吧。
/*用來標識請求照相功能的activity*/
private static final int CAMERA_WITH_DATA = 3023;

/*用來標識請求gallery的activity*/
private static final int PHOTO_PICKED_WITH_DATA = 3021;

/*拍照的照片存儲位置*/
private static final File PHOTO_DIR = new File(Environment.getExternalStorageDirectory() + "/DCIM/Camera");

private File mCurrentPhotoFile;//照相機拍照得到的圖片

[java] view
plain

private void doPickPhotoAction() {
Context context = EditContact.this;

// Wrap our context to inflate list items using correct theme
final Context dialogContext = new ContextThemeWrapper(context,
android.R.style.Theme_Light);
String cancel="返回";
String[] choices;
choices = new String[2];
choices[0] = getString(R.string.take_photo); //拍照
choices[1] = getString(R.string.pick_photo); //從相冊中選擇
final ListAdapter adapter = new ArrayAdapter<String>(dialogContext,
android.R.layout.simple_list_item_1, choices);

final AlertDialog.Builder builder = new AlertDialog.Builder(
dialogContext);
builder.setTitle(R.string.attachToContact);
builder.setSingleChoiceItems(adapter, -1,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
switch (which) {
case 0:{
String status=Environment.getExternalStorageState();
if(status.equals(Environment.MEDIA_MOUNTED)){//判斷是否有SD卡
doTakePhoto();// 用戶點擊了從照相機獲取
}
else{
showToast("沒有SD卡");
}
break;

}
case 1:
doPickPhotoFromGallery();// 從相冊中去獲取
break;
}
}
});
builder.setNegativeButton(cancel, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}

});
builder.create().show();
}
}

/**
* 拍照獲取圖片
*
*/
protected void doTakePhoto() {
try {
// Launch camera to take photo for selected contact
PHOTO_DIR.mkdirs();// 創建照片的存儲目錄
mCurrentPhotoFile = new File(PHOTO_DIR, getPhotoFileName());// 給新照的照片文件命名
final Intent intent = getTakePickIntent(mCurrentPhotoFile);
startActivityForResult(intent, CAMERA_WITH_DATA);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, R.string.photoPickerNotFoundText,
Toast.LENGTH_LONG).show();
}
}

public static Intent getTakePickIntent(File f) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE, null);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
return intent;
}

/**
* 用當前時間給取得的圖片命名
*
*/
private String getPhotoFileName() {
Date date = new Date(System.currentTimeMillis());
SimpleDateFormat dateFormat = new SimpleDateFormat(
"'IMG'_yyyy-MM-dd HH:mm:ss");
return dateFormat.format(date) + ".jpg";
}

// 請求Gallery程序
protected void doPickPhotoFromGallery() {
try {
// Launch picker to choose photo for selected contact
final Intent intent = getPhotoPickIntent();
startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, R.string.photoPickerNotFoundText1,
Toast.LENGTH_LONG).show();
}
}

// 封裝請求Gallery的intent
public static Intent getPhotoPickIntent() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType("image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 80);
intent.putExtra("outputY", 80);
intent.putExtra("return-data", true);
return intent;
}

// 因為調用了Camera和Gally所以要判斷他們各自的返回情況,他們啟動時是這樣的startActivityForResult
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK)
return;
switch (requestCode) {
case PHOTO_PICKED_WITH_DATA: {// 調用Gallery返回的
final Bitmap photo = data.getParcelableExtra("data");
// 下面就是顯示照片了
System.out.println(photo);
//緩存用戶選擇的圖片
img = getBitmapByte(photo);
mEditor.setPhotoBitmap(photo);
System.out.println("set new photo");
break;
}
case CAMERA_WITH_DATA: {// 照相機程序返回的,再次調用圖片剪輯程序去修剪圖片
doCropPhoto(mCurrentPhotoFile);
break;
}
}
}

protected void doCropPhoto(File f) {
try {
// 啟動gallery去剪輯這個照片
final Intent intent = getCropImageIntent(Uri.fromFile(f));
startActivityForResult(intent, PHOTO_PICKED_WITH_DATA);
} catch (Exception e) {
Toast.makeText(this, R.string.photoPickerNotFoundText,
Toast.LENGTH_LONG).show();
}
}

/**
* Constructs an intent for image cropping. 調用圖片剪輯程序
*/
public static Intent getCropImageIntent(Uri photoUri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(photoUri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 80);
intent.putExtra("outputY", 80);
intent.putExtra("return-data", true);
return intent;
}

4. 安卓手機什麼拍照軟體最好用

手機拍照也是安卓手機娛樂一項不可缺少的功能,現在手機標配攝像頭一般也達到了800萬像素,完全可以滿足日常拍攝需求。手機拍照後也需要軟體來處理圖片,這樣的圖片的效果才會更加絢爛,下面為大家介紹幾款經典好用的Android手機拍照軟體。

1、網路魔圖

網路魔圖(原魔圖精靈)軟體是一款好玩易用的掌上美圖工具,致力於提供智能手機上的圖片拍攝、美化和分享一站式圖片流服務。

只要指尖塗抹或點觸,便可輕松美白、磨皮、祛痘、放大眼睛、瘦臉瘦身,為喜愛自拍和人像美容的用戶量身定做。大量漂亮實用的圖片效果,一鍵完成柔光、LOMO、秋色、藍調、老照片、夢幻等等藝術效果,讓同一張照片有不同味道。

2、Q拍

Q拍for Android,可以讓不太會拍照的你瞬間轉變成專業攝影師,它提供多款炫酷濾鏡,讓你創作出驚艷的作品,並且通過一鍵分享同步到空間、微博、朋友網多個平台,真正讓你享受隨時隨刻拍大片,隨時隨地分享生活的樂趣。完全免費,無限量照片上傳

不登錄,也可拍照和加特效,並將處理後的照片保存在手機里。登錄後,可將精美的照片分享到QQ空間、騰訊微博,同時可查看好友在QQ空間、朋友網上傳的照片,隨時隨地暢游好友的精彩照片,保持實時互動。

3、POCO相機

POCO相機是針對手機拍照用戶群推出的多鏡頭拍照及視頻、美化處理、一鍵多平台分享的超級手機拍照工具,內置了多款可更換「鏡頭」(四格LOMO、二格鏡頭、拼圖鏡頭及普通鏡頭等),滿足不同的拍攝玩法。

通過POCO相機可以對照片即時進行顏色處理、裝飾、邊框等美化功能,超過40種後期功能體驗「PS」的樂趣,隨拍或是創作,都是不錯的選擇。內置網路同步功能,可將圖片直接導入POCO圖片社區提供的網路相冊,無限存儲空間,安全、永不丟失。

4、Camera360

Camera360可以輔助用戶拍攝出獨具風格的照片,彌補了手機鏡頭成像質量不理想、層次差、感光范圍弱等缺點,增強了照片的視覺沖擊力和層次。為不同環境的照片提供了不同的風格化處理,增加了照片的藝術性,提高了用戶手機攝影的樂趣與分享的自信。

LOMO、復古、夢幻、黑與白藝術、夢回1839、效果增強、夜景拍攝的神奇效果讓原本普通的照片瞬間充滿不可思議的魔力;讓你感覺到,原來做一個攝影大師就這么簡單。

Camera360還為用戶提供了獨具創意的照片個性風格分享功能,照片拍攝完成以後,可以一鍵快速的將照片分享至自己的新浪微博、騰訊微博、Facebook、Flickr、Twitter等互動分享平台上。

5、布丁相機

布丁相機是一款來自韓國的多效果拍照增強相機應用,界面簡潔漂亮,而且這款相機最大的特點是選擇效果的方式。

軟體功能強大,使用方式也很獨特。它提供了多種相機類型的選擇(例如魚眼,寬景,四格連拍等),以及不同底片濾鏡效果,並有實際範例圖供您先行了解效果。所以你不用再去了解一些照片效果的專業術語,只需對相機的外觀和膠卷的類型有所了解,甚至對比範例什麼都不知道,也能拍出自己喜歡的效果。

6、紙片相機

紙片相機(Paper Camera)是一款獨家特色的手機拍照軟體。不僅是拍照效果,軟體的界面就像是一塊用於塗鴉的畫布。你可以在這里取材於生活,任意修飾以塗鴉效果。

相信大家已經看過許多LOMO風格的拍照軟體,例如Little Photo,而Paper Camera紙布相機的拍攝效果則是以繪畫風格為主,應該會令各位喜歡拍照的朋友們有個新穎的選擇。軟體界面以塗鴉風格將拍照、效果切換等功能呈現於大家眼前,非常可愛。

熱點內容
皇家農場腳本 發布:2024-05-03 16:46:41 瀏覽:458
順序存儲鏈式存儲 發布:2024-05-03 16:46:41 瀏覽:879
電腦配置低可以玩什麼fps游戲 發布:2024-05-03 16:46:39 瀏覽:421
qq刷紅包腳本 發布:2024-05-03 16:16:54 瀏覽:769
c服務編譯耗時優化原理及實例 發布:2024-05-03 15:35:26 瀏覽:15
ue編程 發布:2024-05-03 15:34:40 瀏覽:610
經典的c語言程序 發布:2024-05-03 15:03:24 瀏覽:859
工程加密網 發布:2024-05-03 14:59:55 瀏覽:292
吃冰球解壓 發布:2024-05-03 14:59:10 瀏覽:895
編譯晶元發燙 發布:2024-05-03 14:59:05 瀏覽:549