Android 采用&;删除相机照片
嗨,我正在尝试创建一个自定义视图,该视图既可以拍摄也可以删除图片,并且看起来如下: 视图可以执行以下操作:Android 采用&;删除相机照片,android,view,camera,Android,View,Camera,嗨,我正在尝试创建一个自定义视图,该视图既可以拍摄也可以删除图片,并且看起来如下: 视图可以执行以下操作: 拍照(通过点击“无可用图像”标志)——有效 删除图片(通过点击红十字会)——有效 预览图片 我如何创建一个侦听器,以了解相机何时拍摄了图像?需要拍摄的图像的位置以前是已知的 public class artooPicture extends RelativeLayout { ImageView preview, delete; String value = Envi
- 拍照(通过点击“无可用图像”标志)——有效
- 删除图片(通过点击红十字会)——有效
- 预览图片
public class artooPicture extends RelativeLayout {
ImageView preview, delete;
String value = Environment.getExternalStorageDirectory() + "/99006796"
+ "_" + ".jpg", suffix;
boolean clicked = false;
public artooPicture(Context context) {
this(context, null);
}
public artooPicture(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public artooPicture(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
((Activity) getContext()).getLayoutInflater().inflate(R.layout.picture,
this, true);
delete = (ImageView) findViewById(R.id.scan_delete);
preview = (ImageView) findViewById(R.id.scan_preview);
File f = new File(value);
if (f.exists()) {
clicked = true;
preview.setImageDrawable(BitmapDrawable.createFromPath(value));
} else {
}
delete.setOnClickListener(deleteListener);
preview.setOnClickListener(previewListener);
}
View.OnClickListener deleteListener = new OnClickListener() {
@Override
public void onClick(View v) {
if(clicked){
File f = new File(value);
f.delete();
preview.setImageResource(R.drawable.no_image);
}
clicked = false;
}
};
View.OnClickListener previewListener = new OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(value)));
getContext().startActivity(i);
}
};
}
使用线程解决。有谁有更好的解决方案吗
View.OnClickListener previewListener = new OnClickListener() {
@Override
public void onClick(View v) {
if (!clicked) {
Intent i = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri
.fromFile(new File(value)));
getContext().startActivity(i);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
File f;
do {
f = new File(value);
} while (!f.exists());
if (f.exists()) {
preview.setImageDrawable(BitmapDrawable
.createFromPath(value));
clicked = true;
}
}
});
t.run();
} else {
Dialog d = new Dialog(getContext());
ImageView iv = new ImageView(getContext());
iv.setImageDrawable(BitmapDrawable.createFromPath(value));
d.setContentView(iv);
d.setCancelable(true);
d.show();
}
}
};
为什么不使用
startActivityForResult()
并在应用程序中设置预览
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image = new ImageView(this.getApplicationContext());
image.setImageBitmap(thumbnail);
}
方法?我正在创建一个可以嵌入任何位置的视图。从视图中可以启动活动,但不能启动activityForResult