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();
    }