android无法绕过imageview的角落?

时间:2014-05-14 08:57:12

标签: android

我正在创建一个应用程序,我希望通过它的角来围绕我的ImageView。但它没有从它的角落四舍五入,我使用了以下代码:

<?xml version="1.0" encoding="utf-8"?>

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

<solid android:color="#6BC1F8" />

<corners
    android:bottomLeftRadius="5dp"
    android:bottomRightRadius="5dp"
    android:topLeftRadius="5dp"
    android:topRightRadius="5dp" />

</shape>

用于舍入图像的角落..,但我得到这样的图像: enter image description here

我希望如下所示:

enter image description here

我不确定我在哪里做错了,请指导我:)

4 个答案:

答案 0 :(得分:2)

在android中使用Shape制作圆角

在drawable

中创建名为roundcorner.xml的xml文件
<?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
        <solid android:color="#33DDFF" />
        <corners android:radius="4dp" />
    </shape>

在您的ImageButton中添加此属性android:background="@drawable/roundcorner"

并使用android:src设置图像按钮的图像

使用图片视图集android:src = "your image"android:background= "your shape "android:clickable="true"

答案 1 :(得分:1)

有一种非常好的方法可以通过编程方式创建舍入的ImageView。您可以尝试一下,

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Bitmap.Config;
import android.graphics.PorterDuff.Mode;

public class ImageHelper {
    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {
        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);

        return output;
    }
}

您也可以参考由Google工程师Romain Guy创建的示例应用

https://docs.google.com/a/impressol.com/file/d/0B3dxhm5xm1sia2NfM3VKTXNjUnc/edit?pli=1

的引用,

http://www.curious-creature.org/2012/12/11/android-recipe-1-image-with-rounded-corners/

How to make an ImageView with rounded corners?

答案 2 :(得分:1)

试试这个

    <?xml version="1.0" encoding="utf-8"?>
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="270"
        android:endColor="#cccccc"
        android:startColor="#cccccc" />

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

    <stroke
        android:width="1px"
        android:color="#000000" />


</shape> 

将此作为android:background="@drawable/custom用于您的imageview,您将获得以下输出。

Screenshot of output

编辑:如果您想要更圆角,请增加android:radius的值。如果您不想要黑色边框,请删除<stroke ..... />

希望这有用。

答案 3 :(得分:-1)

我不能像我所知的那样添加财产。你只能为形状做到这一点。但你可以这样做: 添加两个Imageview。带有圆角的透明场内的第一张图片。然后将您的图像置于第一张图像下。