ListView中带圆角的图像

时间:2014-02-25 12:55:22

标签: android listview bitmap rounded-corners

我开发了一个rss应用程序。我希望包含标题和图像的ListView具有带圆角的图像。我在网上拍了一个示例代码,但问题是图像仍然是矩形的。奇怪的是,我有一个滑动菜单,当切换它推动rss ListView,而它被推动图像有圆角!当他们停止推动动画时,它再次成为矩形。对我来说这是一个非常奇怪的问题所以任何帮助? 圆形图像类:

public class RoundedImageView extends ImageView
{
    private float radius = 20.0f;

    public RoundedImageView(Context context) 
    {
        super(context);
    }

    public RoundedImageView(Context context,AttributeSet attrs)
    {
        super(context,attrs);
    }

    public RoundedImageView(Context context,AttributeSet attrs,int defStyle)
    {
        super(context,attrs,defStyle);
    }

    @SuppressLint("DrawAllocation")
    @Override
    protected void onDraw(Canvas canvas)
    {
        Path clipPath = new Path();
        RectF rect = new RectF(0,0,getWidth(), getHeight());
        clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW);
        canvas.clipPath(clipPath);
        super.onDraw(canvas);
    }
}

4 个答案:

答案 0 :(得分:3)

尝试这种方式:将rounded_corner.xml文件创建为drawable\rounded_corner.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >

<solid android:color="#101010" />

<stroke
    android:width="1dp"
    android:color="#808080" />

<corners android:radius="15dp" />

Background设置为您的ImageView

android:background="@drawable\rounded_corner"

并将RSS图片设为ImageView SrcBitmap,如:

 imageview.setBitmap(yourrssimage);

答案 1 :(得分:0)

使用圆角图像或创建xml并在imageview上设置为背景图像。

答案 2 :(得分:0)

在drawable文件夹中创建如下所示的XML。

<强> button_back.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:state_enabled="false"
    android:drawable="@color/grey">

    <shape>
      <solid
          android:color="#ef4444" />
      <stroke
          android:width="1dp"
          android:color="#992f2f" />
      <corners
          android:radius="16dp" />
    </shape>
</item>

然后像这样应用于你的按钮。

<Button
      android:text="@string/press_me"
      android:layout_margin="12dp"
      android:layout_width="fill_parent"
      android:layout_height="30dp"

      android:background="@drawable/button_back"
/>

答案 3 :(得分:0)

创建笔划并将其列为imageview背景

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@android:color/transparent"/>
    <stroke android:width="5dip" android:color="@android:color/transparent" />
    <corners android:radius="5dip"/>
    <padding android:left="0dip" android:top="0dip" android:right="0dip" android:bottom="0dip" />
</shape>

在你的imageview xml中

android:background="@drawable/your_stroke_xml"