回答
下面是一個完整的例子,做你想同樣的事情:
使用該代碼,我可以加載相機並拍照,但無法在圖像視圖中查看.... !!! –
所提到的線程中的代碼工作得很好,只有缺少的東西是檢查'onActivityResult(...)'如果'resultCode'等於'RESULT_OK'並且只處理數據,當它是true時。 –
我很抱歉,但仍然沒有得到它! –
嘗試爲:
STEP 1:啓動相機,可拍攝的圖像:
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, 2);
步驟2:在onActivityResult
得到Im從數據
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST) {
Bitmap photo = (Bitmap) data.getExtras().get("data");
ImageView imageView=(ImageView) findViewbyId(R.id.imgv);
imageView.setImageBitmap(photo);
}
編輯:和第二個解決方案:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "temp.jpg")));
startActivityForResult(intent, 2);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == NONE)
return;
if (requestCode == 2) {
File picture = new File(Environment.getExternalStorageDirectory() + "/temp.jpg");
ImageView imgView=(ImageView)findViewById(R.id.imgView);
Uri imgUri=Uri.fromFile(picture);
imageView.setImageURI(imgUri);
}
}
我試過這段代碼,但無法查看圖像中的圖像查看! –
看到我的編輯答案,並嘗試第二個解決方案,確保你有在Manifast.xml中的內部存儲權限 –
見下面的代碼..它可以幫助你。
把這兩個線路在您按一下按鈕..
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");
startActivityForResult(intent, 0);
在你的代碼創建此方法..
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0 && resultCode == RESULT_OK) {
if (data != null) {
photo = (Bitmap) data.getExtras().get("data");
add_image.setImageBitmap(photo); /* this is image view where you want to set image*/
Log.d("camera ---- > ", "" + data.getExtras().get("data"));
}
}
}
.............. .................................................. ...........................
下面的代碼給你LastImageID由相機拍攝。這只是額外的代碼,你想要洞圖像,然後它的使用完全給你。
.............................................. ..........................................
private String getLastImageId() {
final String[] imageColumns = { MediaStore.Images.Media._ID,
MediaStore.Images.Media.DATA };
final String imageOrderBy = MediaStore.Images.Media._ID + " DESC";
Cursor imageCursor = managedQuery(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, imageColumns,
null, null, imageOrderBy);
if (imageCursor.moveToFirst()) {
int id = imageCursor.getInt(imageCursor
.getColumnIndex(MediaStore.Images.Media._ID));
String fullPath = imageCursor.getString(imageCursor
.getColumnIndex(MediaStore.Images.Media.DATA));
imageCursor.close();
return fullPath;
} else {
return "no path";
}
}
你可以創建一個方法來捕捉圖像,並把它在你的按鈕的onClickListener,就像這樣:
public void takePicture(View view){
try{
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
} catch(Exception e){
e.printStackTrace();
}
}
,然後覆蓋onActivityResult方法是這樣的:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
case CAMERA_PIC_REQUEST:
String path=null;
try{
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
thumbnail = Bitmap.createScaledBitmap(thumbnail,yourDesiredImageWidth, yourDesiredImageHeight, true);
ImageView imageView = (ImageView) findViewById(R.id.yourImageView);
image.setImageBitmap(thumbnail);
break;
}catch(Exception ee){
ee.printStackTrace();
}
}
}
您的活動代碼
public class MainActivity extends Activity {
/** Called when the activity is first created. */
Button btnTakePhoto;
ImageView imgTakenPhoto;
private static final int CAM_REQUREST = 1313;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btnTakePhoto = (Button) findViewById(R.id.button1);
imgTakenPhoto = (ImageView) findViewById(R.id.imageView1);
btnTakePhoto.setOnClickListener(new btnTakePhotoClicker());
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_PIC_REQUEST && resultCode == RESULT_OK) {
if (data != null) {
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
imgTakenPhoto.setImageBitmap(thumbnail);
}
}
}
class btnTakePhotoClicker implements Button.OnClickListener
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
}
}
佈局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Press the button, capture photo and enjoy!!"
android:id="@+id/textview1"/>
<Button
android:text="Take Photo!"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textview1">
</Button>
<ImageView
android:id="@+id/imageView1"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:src="@drawable/icon"
android:scaleType="centerCrop"
android:layout_below="@+id/button1">
</ImageView>
</RelativeLayout>
CemraImageActivity.java
public class CemraImageActivity extends Activity implements OnClickListener{
private int CAMERA_REQUEST;
private ImageView imageView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
this.imageView = (ImageView)this.findViewById(R.id.image_capture);
imageView.setOnClickListener(this);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode != 0)
{
if (requestCode == CAMERA_REQUEST)
{
Bitmap photo = (Bitmap) data.getExtras().get("data");
imageView.setImageBitmap(photo);
}
}
}
public void onClick(View v) {
// TODO Auto-generated method stub
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}
}
爲主。xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="334dp"
android:layout_height="wrap_content"
android:text="Click this image for take a photo"
android:textAppearance="?android:attr/textAppearanceMedium" />
<ImageView
android:id="@+id/image_capture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.06"
android:src="@drawable/ic_launcher" />
</LinearLayout>
非常簡單的方法來獲得一個單擊按鈕,並在imageview中設置存儲圖像。
'公共類MainActivity擴展活動{
private static final int CAMERA_PIC_REQUEST = 22;
Uri cameraUri;
Button BtnSelectImage;
private ImageView ImgPhoto;
private String Camerapath ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImgPhoto = (ImageView) findViewById(R.id.imageView1);
BtnSelectImage = (Button) findViewById(R.id.button1);
BtnSelectImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
try {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
} catch (Exception e) {
Toast.makeText(getApplicationContext(), "Couldn't load photo", Toast.LENGTH_LONG).show();
}
}
});
}
@Override
public void onActivityResult(final int requestCode, int resultCode, Intent data) {
try {
switch (requestCode) {
case CAMERA_PIC_REQUEST:
if (resultCode == RESULT_OK) {
try {
Bitmap photo = (Bitmap) data.getExtras().get("data");
ImgPhoto.setImageBitmap(photo);
} catch (Exception e) {
Toast.makeText(this, "Couldn't load photo", Toast.LENGTH_LONG).show();
}
}
break;
default:
break;
}
} catch (Exception e) {
}
}
}`
設置此清單。
<uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false"></uses-feature>
拳頭您在清單需要做到這一點 在mainactivity.java後做
public class MainActivity extends Activity {
Button button;
ImageView photo;
static final int Cam_Request = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)findViewById(R.id.btnPhoto);
photo = (ImageView)findViewById(R.id.ivPhoto);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent camera_intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File file = getFile();
camera_intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(camera_intent, Cam_Request);
}
});
}
private File getFile()
{
File folder = new File("sdcard/camera_app");
if(!folder.exists())
{
folder.mkdir();
}
File image = new File(folder,"image.jpg");
return image;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
String path = "sdcard/camera_app/image.jpg";
photo.setImageDrawable(Drawable.createFromPath(path));
}
}
- 1. 如何捕捉圖像並保存(Uri)?
- 2. 我如何設置捕捉圖像到圖像視圖
- 3. 如何在OpenCV中捕捉圖像並保存爲pgm格式?
- 4. 如何捕捉圖像並保存在文件夾中
- 5. 圖像捕捉和活動中顯示
- 6. 在iPhone中捕捉圖像
- 7. 如何在Android中捕捉圖像?
- 8. 如何在iframe中捕捉圖像(url)?
- 9. 如何捕捉到的圖像保存到內部存儲
- 10. MATLAB中的「捕捉圖像」
- 11. C中的圖像捕捉#
- 12. PrintScreen圖像捕捉
- 13. 如何自動捕捉並保存圖像,而無需在Android中按捕捉按鈕?
- 14. 如何在表面視圖上觸摸捕捉圖像
- 15. 如何捕捉HTML元素的圖像並保持透明度?
- 16. 如何解碼並保存捕捉圖像,並顯示在GridView控件
- 17. 在下一個活動中保存捕獲的圖像
- 18. 如何用相機捕捉圖像並保存在文件夾中
- 19. 在圖像視圖中保留圖像
- 20. 如何從圖像中捕捉異常
- 21. 網頁捕捉並保存到圖像使用phantomjs LIB
- 22. Aforge.net相機捕捉並保存圖像到目錄
- 23. 用相機捕捉圖像並將圖像放在該圖像上,怎麼樣?
- 24. 延遲的圖像捕捉
- 25. 如何保存附加到圖像視圖的圖像?
- 26. 動作圖像捕捉在觀看時造成圖像模糊
- 27. 如何在iOS中使用籃子圖像捕捉動畫蘋果圖像?
- 28. 從滾動視圖保存圖像
- 29. 將圖像從保存箱加載到我的圖像視圖
- 30. 在android中捕獲的圖像保存
什麼你試過嗎? –
Stackoverflow不是您的個人編程任務組。先嚐試使用Google。 – Aelexe
把你的代碼放在這裏..你在你的代碼中做了什麼? –