`
zyn010101
  • 浏览: 325108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android显示圆形图片

阅读更多
package com.*.widget;
 
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PaintFlagsDrawFilter;
import android.graphics.Path;
import android.graphics.Region;
import android.util.AttributeSet;
import android.widget.ImageView;
 
/**
 * 
 * android circle imageView
 * @author Block Cheng
 *
 */
public class CircleImageView extends ImageView {
 
    Path path;
    public PaintFlagsDrawFilter mPaintFlagsDrawFilter;// 毛边过滤
    Paint paint;
     
    public CircleImageView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        // TODO Auto-generated constructor stub
        init();
    }
 
    public CircleImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        // TODO Auto-generated constructor stub
        init();
    }
 
    public CircleImageView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
        init();
    }
    public void init(){
        mPaintFlagsDrawFilter = new PaintFlagsDrawFilter(0,
                Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG);
        paint = new Paint();
        paint.setAntiAlias(true);
        paint.setFilterBitmap(true);
        paint.setColor(Color.WHITE);
         
    }
     
    @Override
    protected void onDraw(Canvas cns) {
        // TODO Auto-generated method stub
        float h = getMeasuredHeight()- 3.0f;
        float w = getMeasuredWidth()- 3.0f;
        if (path == null) {
            path = new Path();
            path.addCircle(
                    w/2.0f
                    , h/2.0f
                    , (float) Math.min(w/2.0f, (h / 2.0))
                    , Path.Direction.CCW);
            path.close();
        }
        cns.drawCircle(w/2.0f, h/2.0f,  Math.min(w/2.0f, h / 2.0f) + 1.5f, paint);
         int saveCount = cns.getSaveCount();
        cns.save();
        cns.setDrawFilter(mPaintFlagsDrawFilter);
        cns.clipPath(path,Region.Op.REPLACE);
        cns.setDrawFilter(mPaintFlagsDrawFilter);
        cns.drawColor(Color.WHITE);
        super.onDraw(cns);
        cns.restoreToCount(saveCount);
    }
     
}
分享到:
评论

相关推荐

    Android自定义圆形图片

    Android自定义圆形图片,可设置最多两个的外边框。包括从网络获取图片显示。 解决图片锯齿问题。 解决图片变形问题。 文章地址:http://blog.csdn.net/alan_biao/article/details/17379925

    Android 自定义圆形图片

    Android自定义圆形图片,可设置最多两个的外边框。包括从网络获取图片显示。 解决图片锯齿问题。 解决图片变形问题 有需要的可以下载,效果图在 http://blog.csdn.net/wangqing830414/article/details/39612421

    android圆形图片裁剪demo以及实现

    一个`CircleImageView`类,用于显示圆形图片;以及相关的布局文件,如`activity_circle_crop.xml`,定义了裁剪界面的布局。 7. **用户体验优化** - 添加预览功能:用户可以在裁剪过程中实时预览裁剪结果,增强交互...

    android圆形图片控件自定义

    在Android开发中,有时我们需要创建一个显示圆形图片的控件,比如用户头像。自定义圆形图片控件能够提供更好的视觉效果,使界面更加美观。本文将深入探讨如何在Android中实现这一功能。 首先,我们需要了解Android...

    android圆形图片控件

    在Android应用开发中,创建和使用圆形图片控件是一个常见的需求,特别是在用户界面设计中,如用户头像、社交应用的个人资料图片等。本文将深入探讨如何在Android项目中实现这种效果,主要关注"android圆形图片控件...

    Android 完美实现图片圆角和圆形

    在Android开发中,有时我们需要对显示的图片进行特殊处理,比如让图片呈现圆角或完全圆形。本知识点将深入探讨如何在Android应用中完美实现图片的圆角和圆形效果。 首先,我们来看如何实现图片的圆角效果。Android...

    Android 圆形、圆角图片

    在Android开发中,为了使应用界面更具...总的来说,这个示例项目提供了一种在Android应用中实现圆角或圆形图片的方法,开发者可以通过学习这个示例,掌握自定义视图以及图形绘制的基本技巧,提升应用的视觉设计能力。

    Android自定义圆形图片和圆角图片

    要创建圆形图片,最常用的方法是使用`BitmapShader`和`Paint`类。`BitmapShader`可以将Bitmap应用于画笔的着色器,而`Paint`则用于绘制。以下是一个简单的示例: ```java public static Bitmap ...

    Android Face人脸识别检测,圆形相机预览框,截取图片(宽高自定义),圆形图片显示

    显示圆形图片,最简单的方法是使用`android.graphics.drawable.RoundRectShape`和`GradientDrawable`。创建一个圆形的`ShapeDrawable`,然后将其设置为ImageView的背景。或者,可以使用`ImageView`的`android:...

    android图片圆形裁剪框

    本教程将详细讲解如何创建一个简单且实用的圆形图片裁剪框。 首先,我们需要理解Android中的图像处理基本概念。Android系统提供了丰富的图像处理API,例如Bitmap类用于表示位图图像,Canvas类用于绘制图像,以及...

    Android中设置图片的圆形遮罩

    在Android开发中,有时我们需要将图片显示为圆形,例如在头像展示或者设计有特定视觉效果的界面时。实现这个功能通常涉及到对图像进行裁剪或应用遮罩。本篇文章将详细探讨如何在Android中设置图片的圆形遮罩,以及...

    Android裁剪图片为圆形图片Demo

    在Android开发中,有时我们需要将普通的矩形图片裁剪成圆形,以适应各种设计需求,例如用户头像、应用图标等。本Demo主要探讨如何在Android中实现这一功能,涉及的知识点包括图片处理、自定义View以及绘图API的使用...

    android圆形图片实现Demo

    本示例"android圆形图片实现Demo"将详细介绍如何在Android应用程序中创建圆形图片。这个Demo是实现这一功能的一个实践案例,下面我们将深入探讨其背后的实现原理和步骤。 首先,我们可以通过自定义一个ImageView的...

    android圆形图片裁剪.zip

    最后,裁剪后的圆形图片可以保存到本地或者直接显示在界面上。如果是保存,可以使用`Bitmap.compress()`方法,选择合适的格式(如JPEG或PNG)。 总结起来,"android圆形图片裁剪"涉及到的知识点包括: 1. Android...

    android相机圆形框拍照,自定义拍照界面

    这里可以使用`Bitmap.createBitmap()`和`BitmapShader`来实现圆形图片的裁剪。 6. **存储图片** - 将裁剪后的圆形图片保存到设备上。可以使用`MediaStore.Images.Media.insertImage()`或`Bitmap.CompressFormat....

    Android仿百度网页音乐播放器圆形图片转圈播放效果

    本项目是一个仿百度网页音乐播放器圆形图片转圈播放效果,效果可以看一下这里http://www.baidu.com/s?wd=%E9%A3%9E%E5%BE%97%E6%9B%B4%E9%AB%98,主要是自定义了一个圆形ImageView,可以设置最多两个宽度不同且颜色...

Global site tag (gtag.js) - Google Analytics