Android 我的照相机不能正常工作
下面是我的代码,当我点击K on按钮时,它将打开相机,只有一张图像将存储在该位置,但不会显示在imageview中。 我的logcat将是。请解决我的问题Android 我的照相机不能正常工作,android,Android,下面是我的代码,当我点击K on按钮时,它将打开相机,只有一张图像将存储在该位置,但不会显示在imageview中。 我的logcat将是。请解决我的问题 Before IntentIntent Created Creating URI Stuff.... Directory creation IMG_ONE created... 0 Before Intent Intent Created Creating URI Stuff.... Directory creation IMG_O
Before
IntentIntent
Created
Creating URI Stuff....
Directory creation
IMG_ONE created...
0
Before Intent
Intent Created
Creating URI Stuff....
Directory creation
IMG_ONE created...
1
Before Intent
Intent Created
Creating URI Stuff....
Directory creation
IMG_ONE created...
2
这是我的主要代码
btn=(Button)findViewById(R.id.camera);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count=0;
do {
Log.v(TAG, "Before Intent");
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Log.v(TAG, "Intent Created");
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);// set the image file name
startActivityForResult(intent, count);
Log.v(TAG, ""+count);
count++;
}while(count!=3);
}
});
private static Uri getOutputMediaFileUri(int type){
Log.v(TAG, "Creating URI Stuff....");
return Uri.fromFile(getOutputMediaFile(type));
}
private static File getOutputMediaFile(int type){
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),TAG);
Log.v(TAG,"Directory creation");
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
Log.v(TAG, "failed to create directory");
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == MEDIA_TYPE_IMAGE)
{
File imgFile = new File("\\Phone\\Pictures\\myAppSurun/IMG_one.jpg");
File imgFile1=new File("\\Phone\\Pictures\\myAppSurun/IMG_two.jpg");
File imgFile2=new File("\\Phone\\Pictures\\myAppSurun/IMG_three.jpg");
if (!imgFile.exists()) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_one" + ".jpg");
Log.v(TAG, "IMG_ONE created...");
}
else if(imgFile1.exists())
{
mediaFile=new File(mediaStorageDir.getPath()+File.separator+"IMG_three"+".jpg");
Log.v(TAG, "IMG_THREE created...");
}
else if(imgFile.exists() && !imgFile1.exists())
{
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_two" + ".jpg");
Log.v(TAG, "IMG_TWO created...");
}
else
{
mediaFile=new File(mediaStorageDir.getPath()+ File.separator+"IMG_one"+".jpg");
Log.v(TAG, "IMG_ONE ELSE created...");
}
}
else
{
return null;
}
return mediaFile;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.v(TAG, "Before request...");
// int count=1;
int count = 0;
Log.v(TAG, "count" + count);
do {
if (requestCode == count) {
Log.v(TAG, "Camera request iff...");
if (resultCode == RESULT_OK) {
Log.v(TAG, "Result Ok pre...");
Log.v(TAG, ""+count);
try {
File imgFile = new File("\\Phone\\Pictures\\myAppSurun/IMG_one.jpg");
if (imgFile.exists()) {
Log.v(TAG, "IMG_ONE File Exists...");
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
myBitmap = Bitmap.createScaledBitmap(myBitmap, 50, 50, true);
iv.setImageBitmap(myBitmap);
long filesize = imgFile.length();
long sizeinmb = ((filesize / 1024) / 1024);
imgsiz1.setText("" + sizeinmb);
Log.v(TAG, "count1" + count);
}
File imgFile1 = new File("\\Phone\\Pictures\\myAppSurun/IMG_two.jpg");
if (imgFile1.exists()) {
Log.v(TAG, "IMG_TWO File Exists...");
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile1.getAbsolutePath());
myBitmap = Bitmap.createScaledBitmap(myBitmap, 50, 50, true);
iv1.setImageBitmap(myBitmap);
long filesize = imgFile1.length();
long sizeinmb = ((filesize / 1024) / 1024);
imgsiz1.setText("" + sizeinmb);
Log.v(TAG, "count2" + count);
}
File imgFile2 = new File("\\Phone\\Pictures\\myAppSurun/IMG_three.jpg");
if (imgFile2.exists()) {
Log.v(TAG, "IMG_THREE File Exists...");
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile2.getAbsolutePath());
myBitmap = Bitmap.createScaledBitmap(myBitmap, 50, 50, true);
iv2.setImageBitmap(myBitmap);
long filesize = imgFile2.length();
long sizeinmb = ((filesize / 1024) / 1024);
imgsiz1.setText("" + sizeinmb);
Log.v(TAG, "count3" + count);
}
// List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
} catch (Exception e) {
Log.v(TAG, "Exception " + e);
}
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Image save canceled", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this, "Image save failed", Toast.LENGTH_LONG).show();
}
}
count++;
}while(count>=3);
}
btn=(按钮)findViewById(R.id.camera);
btn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
整数计数=0;
做{
日志v(标签“意图前”);
Intent Intent=新Intent(android.provider.MediaStore.ACTION\u IMAGE\u CAPTURE);
Log.v(标记“创建意图”);
fileUri=getOutputMediaFileUri(媒体类型图像);//创建一个文件以保存图像
intent.putExtra(MediaStore.EXTRA_OUTPUT,fileUri);//设置图像文件名
startActivityForResult(意图、计数);
Log.v(标签“”+计数);
计数++;
}而(计数!=3);
}
});
私有静态Uri getOutputMediaFileUri(int类型){
Log.v(标记“创建URI内容…”);
返回Uri.fromFile(getOutputMediaFile(类型));
}
私有静态文件getOutputMediaFile(int类型){
File mediaStorageDir=新文件(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY\u PICTURES),标记);
Log.v(标记“目录创建”);
如果(!mediaStorageDir.exists()){
如果(!mediaStorageDir.mkdirs()){
Log.v(标记“未能创建目录”);
返回null;
}
}
字符串时间戳=新的SimpleDateFormat(“yyyyMMdd_HHmmss”)。格式(新日期();
文件媒体文件;
如果(类型==媒体类型图像)
{
File imgFile=新文件(“\\Phone\\Pictures\\myAppSurun/IMG_one.jpg”);
文件imgFile1=新文件(“\\Phone\\Pictures\\myAppSurun/IMG_two.jpg”);
文件imgFile2=新文件(“\\Phone\\Pictures\\myAppSurun/IMG_three.jpg”);
如果(!imgFile.exists()){
mediaFile=新文件(mediaStorageDir.getPath()+File.separator+“IMG_one”+“.jpg”);
Log.v(标记“IMG_ONE created…”);
}
else if(imgFile1.exists())
{
mediaFile=新文件(mediaStorageDir.getPath()+File.separator+“IMG_three”+“.jpg”);
Log.v(标记“IMG_THREE created…”);
}
else if(imgFile.exists()&&!imgFile1.exists())
{
mediaFile=新文件(mediaStorageDir.getPath()+File.separator+“IMG_two”+“.jpg”);
Log.v(标记“IMG_TWO created…”);
}
其他的
{
mediaFile=新文件(mediaStorageDir.getPath()+File.separator+“IMG_one”+“.jpg”);
Log.v(标记“IMG_其他人已创建…”);
}
}
其他的
{
返回null;
}
返回媒体文件;
}
@凌驾
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
Log.v(标签“请求前…”);
//整数计数=1;
整数计数=0;
Log.v(标签,“计数”+计数);
做{
if(requestCode==计数){
Log.v(标签“摄像机请求iff…”);
if(resultCode==RESULT\u OK){
Log.v(标签“结果确定前…”);
Log.v(标签“”+计数);
试一试{
File imgFile=新文件(“\\Phone\\Pictures\\myAppSurun/IMG_one.jpg”);
if(imgFile.exists()){
Log.v(标记“IMG_存在一个文件…”);
位图myBitmap=BitmapFactory.decodeFile(imgFile.getAbsolutePath());
myBitmap=Bitmap.createScaledBitmap(myBitmap,50,50,true);
iv.设置图像位图(myBitmap);
long filesize=imgFile.length();
long-sizeinmb=((filesize/1024)/1024);
imgsiz1.setText(“+sizeinmb”);
对数v(标签,“计数1”+计数);
}
文件imgFile1=新文件(“\\Phone\\Pictures\\myAppSurun/IMG_two.jpg”);
if(imgFile1.exists()){
Log.v(标记“IMG_两个文件存在…”);
位图myBitmap=BitmapFactory.decodeFile(imgFile1.getAbsolutePath());
myBitmap=Bitmap.createScaledBitmap(myBitmap,50,50,true);
iv1.设置图像位图(myBitmap);
long filesize=imgFile1.length();
long-sizeinmb=((filesize/1024)/1024);
imgsiz1.setText(“+sizeinmb”);
对数v(标签,“计数2”+计数);
}
文件imgFile2=新文件(“\\Phone\\Pictures\\myAppSurun/IMG_three.jpg”);
if(imgFile2.exists()){
Log.v(标记“IMG_三个文件存在…”);
位图myBitmap=BitmapFactory.decodeFile(imgFile2.getAbsolutePath());
myBitmap=Bitmap.createScaledBitmap(myBitmap,50,50,true);
iv2.设置图像位图(myBitmap);
long filesize=imgFile2.length();
long-sizeinmb=((filesize/1024)/1024);
imgsiz1.setText(“+sizeinmb”);
对数v(标签,“计数3”+计数);
}
//List nameValuePairs=新的ArrayList(3);
}捕获(例外e){
日志v(标签“异常”+e);
}
}else if(resultCode==RESULT\u取消){
Toast.makeText(这是“图像保存已取消”,Toast.LENGTH_LONG.show();
}否则{
Toast.makeText(此“图像保存失败”,Toast.LENGTH_LONG.show();
}
}
计数++;
}而(计数>=3);
}
试试文件imgFile=new文件(“/Phone/Pictures/myAppSurun/IMG_one.jpg”)代码>。在android中,文件路径分隔符为“/”而不是“\”。或者您可以使用File.pathSeparator
文件imgFi