如何使用图像创建背景,无边框的圆角

时间:2013-05-22 14:52:21

标签: android

我正在尝试为具有圆角图像的LinearLayout创建背景。我已经看到很多例子如何做到但不完全是我想要的。在大多数情况下,我看到人们使用填充来创建它,但是当我这样做时它绘制了一种边框,我不想要任何边框,只是圆角

    <?xml version="1.0" encoding="UTF-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item >
    <shape>
            <corners android:topLeftRadius="20dp" android:topRightRadius="20dp"/>
    </shape> 
    </item>
     <item >
        <bitmap android:src="@drawable/header"/>
    </item>
</layer-list>

6 个答案:

答案 0 :(得分:3)

Romain Guy的圆角图片

使用Canvas.drawRoundRect()绘制圆角矩形的自定义Drawable。诀窍是使用带有BitmapShader的Paint用纹理而不是简单的颜色填充圆角矩形。

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

样本可以下载@ https://docs.google.com/file/d/0B3dxhm5xm1sia2NfM3VKTXNjUnc/edit?pli=1

这是另一个链接

How to make an ImageView with rounded corners?

另一个链接

http://ruibm.com/?p=184

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;
} 
}

答案 1 :(得分:2)

您可以尝试使用ImageView。在图像视图集

android:src="@drawable/yourimage"
android:background="@drawable/cornershape"

现在使用FrameLayout中的图片视图。以便其他布局可以放在ImageView

答案 2 :(得分:1)

我使用了这个博客的一个例子,这帮助了我。 希望这对你有用

http://manishkpr.webheavens.com/android-rounded-corner-image-bitmap-example/

答案 3 :(得分:1)

您只需使用Android支持资源库v4中的DroppedDown即可。您只需创建一个实例并设置角半径:

        type Exception report

        message java.lang.ClassNotFoundException: org.apache.jsp.lista_002dcontato_002ddisplay_jsp

        description The se

rver encountered an internal error that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.lista_002dcontato_002ddisplay_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:176) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) root cause

    java.lang.ClassNotFoundException: org.apache.jsp.lista_002dcontato_002ddisplay_jsp java.net.URLClassLoader.findClass(Unknown Source) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:62) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:171) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

答案 4 :(得分:1)

您可以在下面进行以下操作: 在依赖中发挥作用

=HYPERLINK(E2&F2&G2&H2,"Click Here"

在您的xml文件上

implementation 'com.makeramen:roundedimageview:2.3.0'

答案 5 :(得分:0)

我遇到了同样的问题,我只是在Photoshop中创建了带有圆角的图像。这不是涉及代码或可绘制对象的答案。

上述关于库'com.makeramen:roundedimageview:2.3.0'的建议对我不起作用,因为我实际上想将相对布局的背景设置为带有圆角的图像。

使用cardview无效,也没有使用图像作为相对布局中的第一个视图并操纵角的圆度。

在photoshop中创建圆角就可以了。