Эй, я хочу отобразить изображение, которое я сделал раньше автоматически. Я получил данные изображения в onPictureTaken, и массив байтов заполнен, я полагаю, информацией о пикселях, но когда я пытаюсь отобразить их в компоненте imageView, я всегда получаю черное изображение. (Конечно, я преобразовал его в растровое изображение перед отображением на экране)
Вот мой код:
private String errorMessage;
private Camera mCamera;
private Parameters parameters;
private ImageView iv;
private int picturesTaken;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// Default initialisierung
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
errorMessage = null;
iv = (ImageView) findViewById(R.id.iv);
picturesTaken = 0;
// Callback, wenn Bild aufgenommen wurde.
Camera.PictureCallback pic = new Camera.PictureCallback()
{
@Override
public void onPictureTaken(byte[] bytes, Camera camera)
{
// Bild probehalber ausgeben
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
iv.setImageBitmap(bitmap);
// Kamera wieder freigeben
camera.release();
mCamera = null;
}
};
// Check, ob Hardware ansprechbar ist
if (this.checkCameraHardware(this))
{
// Kameraobjekt erstellen
mCamera = this.getCameraInstance();
if (mCamera != null)
{
SurfaceTexture view = new SurfaceTexture(10);
try
{
mCamera.setPreviewTexture(view);
parameters = mCamera.getParameters();
mCamera.setParameters(parameters);
mCamera.startPreview();
mCamera.takePicture(null, null, pic);
picturesTaken++;
}
catch (Exception e)
{
errorMessage = e.getMessage();
}
}
else
{
Toast.makeText(getApplicationContext(), "Error: Can't create instance of camera!", Toast.LENGTH_LONG).show();
Log.e("kkkk", "Error: Can't create instance of camera!");
}
}
else
{
Toast.makeText(getApplicationContext(), "Error: Camera currently not available!", Toast.LENGTH_LONG).show();
Log.e("kkkk", "Error: Camera currently not available!");
}
}