缩放位图android和性能

时间:2016-02-01 12:58:18

标签: android bitmap

美好的一天, 我有Image使用Picasso加载,大小为1110x300px,我需要将图片裁剪为550 x 300px,目前我正在尝试使用Bitmap.createScaledBitmap()但仅限此方法调整我的图像大小,而不是裁剪。

还有另一个问题 - 性能不佳。

我的代码:

 Runnable r = new Runnable(){
                @Override
                public void run() {
                    Picasso.with(getActivity()).load(builder.toString()).into(new Target() {
                    @Override
                    public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                        int width = Double.valueOf(bitmap.getWidth() * 0.5).intValue();
                        int height = bitmap.getHeight()


                        Bitmap newBitmap = Bitmap.createScaledBitmap(bitmap, width, height, true);
                        imageView.setImageBitmap(newBitmap);
                    }

                    @Override
                    public void onBitmapFailed(Drawable errorDrawable) {}
                    @Override
                    public void onPrepareLoad(Drawable placeHolderDrawable) {}

                    });
                  }
};
r.run();

问题:如何缩放我的Bitmap,而不是重新调整大小以及如何提高代码的性能。

谢谢!

1 个答案:

答案 0 :(得分:1)

要回答问题的一部分,要裁剪位图,您可以使用:

resizedBitmap = Bitmap.createBitmap(bitmap, 0,0,yourwidth, yourheight);

所以你提供原始位图,启动X,开始Y,宽度&高度作为参数