在Android中以圆角的方形显示方式剪切半幅图像

在Android中以圆角的方形显示方式剪切半幅图像,android,image,shape,rounding,clip,Android,Image,Shape,Rounding,Clip,我有大尺寸的图像,我需要削减60%的高度和60%的宽度,并显示圆角的结果图像 我已经应用了这个代码 Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint pai

我有大尺寸的图像,我需要削减60%的高度和60%的宽度,并显示圆角的结果图像

我已经应用了这个代码

Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
            bitmap.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(output);

    final int color = 0xff424242;
    final Paint paint = new Paint();
    final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
    final RectF rectF = new RectF(rect);
    final float roundPx = pixels;

    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);

    canvas.drawRoundRect(rectF, roundPx, roundPx, paint);

    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);
它的工作很好,但我必须设置大约50像这样的图像。因此,这会减慢整个过程,我必须等待大约4秒钟才能打开整个过程的活动

我也试过了

 android:adjustViewBounds="true"
但正因为如此,我的图像被设置好了,但问题是,大图像会在小范围内缩小。这看起来不太好


有人有其他方法做这项工作吗?有没有可能用xml完成整个工作,以便在运行时我们可以减少一些活动打开的时间。请帮助..

您需要在手机上进行大量的计算。为了实现您的目标,我建议使用Renderscript。一个好的开始是

您可以在服务中实现繁重的计算,以减轻主线程的负载。我不太确定您是如何显示数据的,但您可以为占位符提供一个默认图像,并在服务执行此任务时开始更新它们。您可以广播一个意图,以指示每次图像缩减的完成

您还必须为“缩略图”实现缓存,这样就不必在用户每次启动应用程序时都进行所有计算


关于。

这些示例基于映像缓存—内存缓存和DiskLRU缓存


请仔细阅读缓存位图,这肯定会对您有所帮助。

您能给我举个例子吗?如果您的图像大部分时间都是固定的,那么我建议您使用图像缓存,这只需要一次时间,从下一次开始,它将从缓存中获取这些图像,而无需整个计算,你的cpu时间和内存将节省。+1供你建议。你能给我发送一些示例链接来实现它吗。