【android中级】之android 背景圆角和图片圆角

简介: android背景圆角的实现1.建立一个xml文件,命名为circle_corner,放置到drawable目录下,内容如下:                      圆角效果二 2.
android背景圆角的实现
1.建立一个xml文件,命名为circle_corner,放置到drawable目录下,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android = "http://schemas.android.com/apk/res/android">
  <gradient android:endColor="@android:color/transparent" 

                  android:startColor="#000000"

                  android:gradientRadius="60"  

                   android:type="radial"/>
        <corners android:radius="10px"/>
</shape>

            圆角效果二

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

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

<solid android:color="#99FFFFFF"/>

<corners android:radius="30px"/>

<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />

</shape>

2.在需要圆角背景的元件上设置背景为circle_corner

<TextView android:text="abc"

                android:background="@drawable/circle_corner"

                android:layout_width="wrap_content"

                android:layout_height="wrap_content"
>

  1. 图片本身加上圆角

Bitmap myCoolBitmap = ... ; // <-- Your bitmap you want rounded

int w = myCoolBitmap.getWidth(), h = myCoolBitmap.getHeight();


Bitmap rounder = Bitmap.createBitmap(w,h,Bitmap.Config.ARGB_8888);

Canvas canvas = new Canvas(rounder);  


Paint xferPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

xferPaint.setColor(Color.RED);


canvas.drawRoundRect(new RectF(0,0,w,h), 20.0f, 20.0f, xferPaint);


xferPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));

canvas.drawBitmap(myCoolBitmap, 0,0, null);

canvas.drawBitmap(rounder, 0, 0, xferPaint);

或者

public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {

  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 = 12;

    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;

}


相关文章
|
2月前
|
存储 缓存 编解码
Android经典面试题之图片Bitmap怎么做优化
本文介绍了图片相关的内存优化方法,包括分辨率适配、图片压缩与缓存。文中详细讲解了如何根据不同分辨率放置图片资源,避免图片拉伸变形;并通过示例代码展示了使用`BitmapFactory.Options`进行图片压缩的具体步骤。此外,还介绍了Glide等第三方库如何利用LRU算法实现高效图片缓存。
61 20
Android经典面试题之图片Bitmap怎么做优化
|
3月前
|
数据处理 开发工具 数据安全/隐私保护
Android平台RTMP推送|轻量级RTSP服务|GB28181接入之文字、png图片水印的精进之路
本文探讨了Android平台上推流模块中添加文字与PNG水印的技术演进。自2015年起,为了满足应急指挥及安防领域的需求,逐步发展出三代水印技术:第一代为静态文字与图像水印;第二代实现了动态更新水印内容的能力,例如实时位置与时间信息;至第三代,则优化了数据传输效率,直接使用Bitmap对象传递水印数据至JNI层,减少了内存拷贝次数。这些迭代不仅提升了用户体验和技术效率,也体现了开发者追求极致与不断创新的精神。
|
3月前
|
自然语言处理 定位技术 API
Android经典实战之如何获取图片的经纬度以及如何根据经纬度获取对应的地点名称
本文介绍如何在Android中从图片提取地理位置信息并转换为地址。首先利用`ExifInterface`获取图片内的经纬度,然后通过`Geocoder`将经纬度转为地址。注意操作需在子线程进行且考虑多语言支持。
215 4
|
3月前
|
XML 前端开发 Android开发
Android经典实战之Kotlin中实现圆角图片和圆形图片
本文介绍两种实现圆角图像视图的方法。第一种是通过自定义Kotlin `AppCompatImageView`,重写`onDraw`方法使用`Canvas`和`Path`进行圆角剪裁。第二种利用Android Material库中的`ShapeableImageView`,简单配置即可实现圆角效果。两种方法均易于实现且提供动态调整圆角半径的功能。
63 0
|
5月前
|
Android开发
Android中如何动态的调整Dialog的背景深暗
在Android开发中,Dialog和DialogFragment可通过设置`Window`的`backgroundDimAmount`来控制背景变暗,突出对话框。在DialogFragment的`onCreateDialog`或`onViewCreated`中,获取`Dialog`的`Window`,设置`LayoutParams.dimAmount`(例如0.5f)并添加`FLAG_DIM_BEHIND`标志。要动态调整,可保存`LayoutParams`并在需要时更新。对于Dialog,创建时直接设置同样属性。还可以通过定义主题样式设置背景模糊程度。
141 7
|
5月前
|
JSON 编解码 Apache
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
56 1
|
5月前
|
Java Android开发
18. 【Android教程】图片控件 ImageView
18. 【Android教程】图片控件 ImageView
77 4
|
5月前
|
开发工具 Android开发
Android 代码自定义drawble文件实现View圆角背景
Android 代码自定义drawble文件实现View圆角背景
176 0
|
5月前
|
前端开发 Java API
Android系统中读写和显示图片
Android系统中读写和显示图片
43 0
|
5月前
|
XML Java API
54. 【Android教程】图片资源:Drawable
54. 【Android教程】图片资源:Drawable
75 0