【问题标题】:Android corner crop bitmap image with static bg color具有静态背景颜色的 Android 角裁剪位图图像
【发布时间】:2014-05-21 10:30:34
【问题描述】:

您看到的粉红色图像最初是一个正方形,并且希望它的右上角被裁剪掉。

解决此问题的正确方法是什么,生成的位图将用于网格视图,在适配器中的 getView() 期间执行此类操作时,从源图像生成自定义位图是否会成为瓶颈?

一种更好的方法是使用可绘制背景,并添加填充,但是,我没有成功填充角落。

另一种方法是使用所需的背景重新绘制位图,但是,我无法进行边角裁剪。

更新

我找到了一个简单的方法来做到这一点,灵感来自here

【问题讨论】:

  • 你的意思是你有红色的图像,你需要画蓝色的边框和带有刻度线的角吗?
  • @VinayakBevinakatti 是的
  • 检查我的答案,如果您没有得到我提到的内容,请发表评论。

标签: android image android-layout android-listview bitmap


【解决方案1】:

您可以有两张图片,一张红色(图片的内部)和一张蓝色(图片的外部)。蓝色图像有边框和带有透明内部主体的角。并将 Imageview 与 android:background="@drawable/redImage"android:src="@drawable/blueImage" 一起使用。使用它,您可以将带角的蓝色边框应用于网格上的任何图像。

在 Imageview 中,src 是前景图像,background 是背景图像。

【讨论】:

  • 我明白你的意思,但是,你能建议一种可编程的方法,以便可以对方形 redImage 进行边角裁剪吗?这样,我们就可以有可变的背景,比如蓝绿色等。
  • 你可以使用Canvas,但是会很乏味。参考 - stackoverflow.com/a/17045266/28557
【解决方案2】:

您可以从带角的蓝色边框创建 9-patch 图像。而不是使用

<FrameLayout
     ...
     android:foreground="@drawable/blue_border">
    <ImageView 
        android:src = "@drawable/red_image"
        ... />
</FrameLayout>

【讨论】:

    猜你喜欢
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多