Пока у меня есть приложение, которое создаёт новую папку на SD-карте и сохраняет пиктограммы в новой папке.Android Display Camera Изображение в новой активности
Я пытаюсь получить это, как только изображение будет принято, оно будет отображаться в новом действии с двумя кнопками, которые говорят «Использовать» или «Повторить». Пока сохранение изображений работает отлично, но после того, как изображение было снято, и он пытается открыть новую активность, он просто остается на камере Activity и показывает изображение, которое я не могу использовать, поскольку у него есть surfaceView onit.
В моем LogCat я получаю сообщение об ошибке «О, без ссылки», который установлен, чтобы показать, не может ли он найти изображение, поэтому я думаю, что это может быть потому, что я не вызываю изображение из правильного места в моем Punch.java.
Так что я стараюсь, чтобы однажды приложение захватило приложение, чтобы открыть новую активность «Punch.java» и отобразить только что снятое изображение.
UPDATE Благодаря Lumis (код ниже обновлено)
Изменено
intent.putExtra("filepath",uriSavedImage);
в
intent.putExtra("filepath",uriSavedImage.toString());
который теперь открывает новую активность, но по-прежнему не может см. изображение.
UPDATE 2 Punch.java
Я обновил свой Punch.java, как с новым кодом, если я изменить (myRef)
к "/sdcard/Punch/image_0.jpg"
я могу видеть, что изображение, но мне нужно, чтобы Referance к изображению, которое было просто снятая камера, которая что-то делать с этой линией я думаю intent.putExtra("filepath",uriSavedImage.toString());
Update 3
Почти прекрасно работает в настоящее время использует intent.putExtra("filepath",Uri.parse(output.getAbsolutePath()).toString());
, но по какой-то причине он еще положить mnt/sdcard
в начале он просто должен быть sdcard/
Хорошо, теперь работает нормально/шоссе/SDCard это когда SDCard был установлен на компьютер, в то время как я взял картину.
В моей камере деятельности я имею
PictureCallback myPictureCallback_JPG = new PictureCallback(){
public void onPictureTaken(byte[] arg0, Camera arg1) {
// TODO Auto-generated method stub
/*Bitmap bitmapPicture
= BitmapFactory.decodeByteArray(arg0, 0, arg0.length); */
int imageNum = 0;
Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "Punch");
imagesFolder.mkdirs(); // <----
String fileName = "image_" + String.valueOf(imageNum) + ".jpg";
File output = new File(imagesFolder, fileName);
while (output.exists()){
imageNum++;
fileName = "image_" + String.valueOf(imageNum) + ".jpg";
output = new File(imagesFolder, fileName);
}
Uri uriSavedImage = Uri.fromFile(output);
imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
OutputStream imageFileOS;
try {
imageFileOS = getContentResolver().openOutputStream(uriSavedImage);
imageFileOS.write(arg0);
imageFileOS.flush();
imageFileOS.close();
Toast.makeText(AndroidCamera.this,
"Image saved",
Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent intent = new Intent(getBaseContext(), Punch.class);
intent.putExtra("filepath",uriSavedImage.toString());
//just using a request code of zero
int request=0;
startActivityForResult(intent,request);
}};
И мой Punch.java что следующая Деятельность:
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.punch);
String myRef = this.getIntent().getStringExtra("filepath");
File imgFile = new File(myRef);
if(imgFile.exists()){
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
ImageView myImage = (ImageView) findViewById(R.id.imagepunch);
myImage.setImageBitmap(myBitmap);
}
}
}
Я думаю, что mnt является нормальным, ответьте на этот вопрос: http://stackoverflow.com/questions/7102104/android-how-to-access-a-file -in-the-sd-card Это должно быть tever Environment.getExternalStorageDirectory() возвращает ... – Lumis