裁剪图像视图

时间:2017-03-30 07:36:25

标签: android image view

在拍摄屏幕截图后,我将位图从一个活动传递到另一个活动

                Bitmap bitmap;
                bitmap = takeScreenshot();
            try {
                //Write file
                String filename = "bitmap.png";
                FileOutputStream stream = this.openFileOutput(filename, Context.MODE_PRIVATE);
                bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);

                //Cleanup
                stream.close();
                bitmap.recycle();

                //Pop intent
                Intent in1 = new Intent(this, FinalImageShare.class);
                in1.putExtra("image", filename);
                startActivity(in1);
            } catch (Exception e) {
                e.printStackTrace();
            }

这里我正在获取其他活动中的图像,问题是工具栏高度也来了(我通过setVisibility隐藏工具栏)我想裁剪图像以便工具栏高度不会来.TIA

     imageView=(ImageView)findViewById(R.id.imageView);

    String filename = getIntent().getStringExtra("image");
    try {
        FileInputStream is = this.openFileInput(filename);
        bmp = BitmapFactory.decodeStream(is);

        is.close();
    } catch (Exception e) {
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

您可以使用f >= 6*l//10 and f < 8*l//10 方法,如下所示:

createBitmap

resizedbitmap = Bitmap.createBitmap(bitmap, 0, 0, yourwidth, yourheight); 是您创建的位图,而bitmap是裁剪的位图。

在这种情况下,

createBitmap()方法作为参数:位图,起始X,起始Y,宽度和高度。

您可以使用这两种方法来获取宽度和高度:

resizedbitmap

同时检查此链接以了解bitmap.getWidth(), bitmap.getHeight() 方法:

Developer site

或者你可以使用绘图缓存属性,如下所示:

createBitmap

或类似于上一个,View main = findViewById(R.id.view); Bitmap screenshot; main.setDrawingCacheEnabled(true); screenshot = Bitmap.createBitmap(main.getDrawingCache()); main.setDrawingCacheEnabled(false); 查看以获取全屏位图缓存:

ctx.getWindow().getDecorView()

希望这有帮助!