Android長押し識別図のQRコード
3515 ワード
Zingに基づいて、初学androidコードの品質は高くないかもしれません
bigImage.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View viewm) {
Bitmap obmp = ((BitmapDrawable) (bigImage).getDrawable()).getBitmap();
int width = obmp.getWidth();
int height = obmp.getHeight();
int[] data = new int[width * height];
obmp.getPixels(data, 0, width, 0, 0, width, height);
RGBLuminanceSource source = new RGBLuminanceSource(width, height, data);
BinaryBitmap bitmap1 = new BinaryBitmap(new HybridBinarizer(source));
QRCodeReader reader = new QRCodeReader();
Result re = null;
try {
re = reader.decode(bitmap1);
} catch (NotFoundException e) {
e.printStackTrace();
} catch (ChecksumException e) {
e.printStackTrace();
} catch (FormatException e) {
e.printStackTrace();
}
if (re == null) {
showAlert(obmp);
} else {
showSelectAlert(obmp, re.getText());
}
return false;
}
});
private void showAlert(final Bitmap bitmap) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(" ")
.setCancelable(false)
.setPositiveButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) {
saveImageToGallery(bitmap);
}
})
.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) {
}
});
builder.show();
}
private void showSelectAlert(final Bitmap bitmap, final String url) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(" ");
String str[] = {" ", " "};
builder.setItems(str, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) {
switch (i) {
case 0: {
saveImageToGallery(bitmap);
}
break;
case 1: {
Intent n = new Intent(EnlargeimagevActivity.this, DetailActivity.class);
n.putExtra(DetailActivity.BUNDLE_KEY_DISPLAY_TYPE, DetailActivity.WEBVIEW_DETAIL);
n.putExtra(DetailwebFragment.WEB_URL, url);
startActivity(n);
}
break;
}
}
});
builder.setNegativeButton(" ", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterfacem, int i) {
}
});
builder.show();
}