使用圆角可绘制

and*_*per 13 android rounded-corners android-drawable

流行的Google开发人员Romain Guy发了一篇很好的文章,展示了如何有效地在视图上使用圆角可绘制(在他的代码中称为"StreamDrawable" ).

在纵向模式下,样本本身在我的Galaxy S3上工作得非常好,但我有一些问题:

  1. 如果屏幕较小(例如在qvga屏幕上),则显示的图像会被裁剪.

  2. 如果我的输入位图太小而不是我希望显示的位置,则输出图像的边缘会被涂抹.即使在Galaxy S3上,当您运行示例代码并且它在横向上时,它看起来很糟糕:

    在此输入图像描述

  3. 我仍然不确定它(因为我使用缩放图像以使用示例代码的解决方法),但它认为即使这个解决方案在listView中使用时有点慢.也许这有一个renderscript解决方案?

如果我使用setImageDrawable或setBackgroundDrawable并不重要.它必须是drawable本身的东西.

我试过玩变量和bitmapShader,但没有任何效果.可悲的是,TileMode没有拉伸图像的值,只是以某种方式对其进行平铺.

作为一种解决方法,我可以创建一个新的缩放位图,但它只是一种解决方法.当然有一种更好的方法,也不会使用更多的内存.

如何解决这些问题并使用这个优秀的代码?

and*_*per 10

我认为本网站提供的解决方案效果很好.

与其他解决方案不同,它不会导致内存泄漏,即使它基于Romain Guy的解决方案.

编辑:现在在支持库上,您还可以使用RoundedBitmapDrawable(使用RoundedBitmapDrawableFactory).