【问题标题】:Using a Layout to Make Rounded Corners affect on image使用布局使圆角影响图像
【发布时间】:2013-05-02 19:49:16
【问题描述】:

我有一些ImageView's,使用ImageLoader 或类似技术来圆角似乎太麻烦了。

我可以简单地制作一个LinearLayout 来覆盖图像吗? (或将图像设置为其背景?)例如,如果布局具有圆角,是否会隐藏图像下方的部分以创建圆角效果?

我一直在尝试使用它(特别是使用图像作为背景)并且似乎无法隐藏图像的角落。

【问题讨论】:

    标签: android imageview android-linearlayout


    【解决方案1】:

    好吧,使用 FrameLayout 或 RelativeLayout,您可以轻松地在 imageview 上堆叠第二层,例如:

    <FrameLayout
        android:layout_width="60dp"
        android:layout_width="60dp">
        <ImageView android:id="@+id/myimage"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:src="@drawable/myrealimage" />
        <ImageView android:id="@+id/my_roundedcorner_overlay"
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:src="@drawable/myoverlaywithroundedcornersandtransparentcenter" />
    </FrameLayout>
    

    但是,请注意这会导致过度绘制并使您的布局更加复杂。

    您还可以将真实图像设置为 ImageView 的背景,并将叠加层设置为 ImageViews src,但是在这种情况下不要设置填充(也可能无法使用库从 Web 加载图像) )

    最干净的解决方案是创建一个扩展 ImageView 的自定义小部件并覆盖其 onDraw 方法,使用位图着色器绘制到画布上,与 http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/ 几乎相同,但只需执行一次,即可根据需要多次重复使用。

    【讨论】:

      【解决方案2】:

      我曾经遇到过同样的问题,只是我想创建一个圆角的谷歌地图,检查这个 问题:

      Is there a way to implement rounded corners to a Mapfragment?

      诀窍是创建一个FrameLayout,并在其中放置您的内容,然后在其顶部放置另一个布局,该布局具有带圆角的9-patch 图像背景。

      【讨论】:

        【解决方案3】:

        如果您使用Universal Image Loader,则可以将图像的角改为圆角。

        DisplayImageOptions options = new DisplayImageOptions.Builder()            
                .displayer(new RoundedBitmapDisplayer())
                .build();
        ImageLoader.getInstance().displayImage(imageUrl, imageView, options);
        

        【讨论】:

          猜你喜欢
          • 2019-09-09
          • 1970-01-01
          • 2012-04-07
          • 1970-01-01
          • 1970-01-01
          • 2023-04-01
          • 2014-01-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多