Android实现圆角图片

本文实例为大家分享了Android实现圆角图片的具体代码,供大家参考,具体内容如下

效果图:

快速开始

activity_main.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".MainActivity">

  <ImageView
    android:id="@+id/iv_img"
    android:layout_width="300dp"
    android:layout_height="200dp"
    android:layout_marginTop="30dp"
    android:src="@mipmap/image_bg"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toTopOf="parent"/>

  <ImageView
    android:id="@+id/iv_rect_img"
    android:layout_width="300dp"
    android:layout_height="200dp"
    android:layout_marginTop="30dp"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintTop_toBottomOf="@id/iv_img"/>

  <ImageView
    android:id="@+id/iv_circle_img"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:layout_marginTop="30dp"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@id/iv_rect_img"/>

</android.support.constraint.ConstraintLayout>

MainActivity.class文件:

public class MainActivity extends AppCompatActivity {

  private ImageView ivRectImg, ivCircleImg;

  private Bitmap bitmap;
  private int width;
  private int height;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ivRectImg = findViewById(R.id.iv_rect_img);
    ivCircleImg = findViewById(R.id.iv_circle_img);

    bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.image_bg);
    width = bitmap.getWidth();
    height = bitmap.getHeight();

    rectRoundBitmap();
    circleBitmap();
  }

 // 圆角矩形
  private void rectRoundBitmap() {
    RoundedBitmapDrawable bitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap);
    bitmapDrawable.setAntiAlias(true);
    bitmapDrawable.setCornerRadius(50);
    ivRectImg.setImageDrawable(bitmapDrawable);
  }

  // 把bitmap图片进行剪切成正方形, 然后再设置圆角半径为正方形边长的一半即可
  private void circleBitmap() {
    Bitmap circle = null;
    int min = Math.min(width, height);
    int max = Math.max(width, height);
    if (width == height) {
      circle = Bitmap.createBitmap(bitmap, 0, 0, width, height);
    } else {
      // 居中裁剪
      if (width > height) {
        circle = Bitmap.createBitmap(bitmap, (max - min) / 2, 0, min, min);
      } else {
        circle = Bitmap.createBitmap(bitmap, 0, (max - min) / 2, min, min);
      }
    }
    RoundedBitmapDrawable bitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), circle);
    bitmapDrawable.setCornerRadius(min / 2);
    bitmapDrawable.setAntiAlias(true);
    ivCircleImg.setImageDrawable(bitmapDrawable);
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Android 实现圆角图片的简单实例

    Android 实现圆角图片的简单实例 实现效果图: 本来想在网上找个圆角的例子看一看,不尽人意啊,基本都是官方的Demo的那张原理图,稍后会贴出.于是自己自定义了个View,实现图片的圆角以及圆形效果.效果图: Android 圆角图片的实现形式,包括用第三方.也有系统的.比如makeramen:roundedimageview,系统的cardview , glide .fresco . compile 'com.android.support:appcompat-v7:24.0.0' com

  • Android中Glide加载圆形图片和圆角图片实例代码

    一.简介: 介绍两种使用 BitmapTransformation 来实现 Glide 加载圆形图片和圆角图片的方法.Glide 并不能直接支持 Round Pictures ,需要使用 BitmapTransformation 来进行处理. 二.网上的实现方式 这里介绍下网上常见的方式和使用 RoundedBitmapDrawable 两种方法,本质上是差不多的: 使用 Canvas 和 Paint 来绘制 使用 Android.support.v4.graphics.drawable.Rou

  • Android实现带描边的圆角图片

    利用学过的BitmapShader渲染类,我们来实现一个带描边的圆角图片. 具体实现: 用来显示自定义的绘图类的布局文件 res/layout/main.xml: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:

  • android自定义imageview实现圆角图片

    本文实例为大家分享了android自定义imageview实现圆角图片的具体代码,供大家参考,具体内容如下 自定义图片的属性,对图片进行圆角切割 实现效果图: (1)在activity_main.xml文件布局,非常简单 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android

  • Android实现圆形图片或者圆角图片

    Android圆形图片或者圆角图片的快速实现,具体内容如下 话不多说直接上code xml文件布局 <LinearLayout android:id="@+id/ll_headpict" android:layout_width="match_parent" android:layout_height="97dp" android:layout_margin="13dp" android:background="

  • Android关于Glide的使用(高斯模糊、加载监听、圆角图片)

    高斯模糊.加载监听.圆角图片这些相信大家都很熟悉,那如何实现这些效果,请大家参考本文进行学习. 1.引用 compile 'com.github.bumptech.glide:glide:3.7.0' 2.加载图片 2.1 基本加载 Glide.with(context)     .load(url)     .into(imageView); 2.2 设置加载中和加载失败的情况 Glide.with(context) .load(url) .placeholder(R.drawable.loa

  • Android中实现圆角图片的几种方法

    Android中实现圆角图片有多种姿势,不知你解锁了几种? 方法一:setXfermode法 此种方式就是再new一个相同尺寸的bitmap,然后使用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));先画圆角矩形,再画原始bitmap,然后就得到了一个圆角的bitmap了. public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, float roundPx) { Bitmap

  • android 实现圆角图片解决方案

    现在我们就来看看怎么样把图片的四角都变成圆形的,为什么要这样做那,如果要是这样界面就会非常的美观,下面我们就来看看代码吧. java代码: 复制代码 代码如下: public static Bitmap toRoundCorner(Bitmap bitmap, int pixels) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Config.ARGB_8888); Canvas canv

  • Android如何设置圆角图片

    在开发过程中有时需要将图片显示成圆角图片,一般我们可以通过在xml中设置drawable shape即可,但今天我给出另一种方法,用java代码动态去设置圆角,顺便做个简单的笔记. 主要原理是使用系统自带api: RoundedBitmapDrawableFactory 先上效果图: 由于比较简单,直接给出实现方式: public class MainActivity extends AppCompatActivity { private ImageView mImgRectRound; pri

  • android 设置圆角图片实现代码

    复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:orientation="vertical" android:layout_wi

随机推荐