设置ImageView圆角

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.widget.ImageView;

public class RoundImageView extends ImageView {
    public RoundImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public RoundImageView(Context context) {
        super(context);
        init();
    }

    private final RectF roundRect = new RectF();
    private float rect_adius = 10;//控制圆角大小
    private final Paint maskPaint = new Paint();
    private final Paint zonePaint = new Paint();

    private void init() {
        maskPaint.setAntiAlias(true);
        maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
        //
        zonePaint.setAntiAlias(true);
        zonePaint.setColor(Color.WHITE);
        //
        float density = getResources().getDisplayMetrics().density;
        rect_adius = rect_adius * density;
    }

    public void setRectAdius(float adius) {
        rect_adius = adius;
        invalidate();
    }

    @Override
    protected void onLayout(boolean changed, int left, int top, int right,
            int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        int w = getWidth();
        int h = getHeight();
        roundRect.set(0, 0, w, h);
    }

    @Override
    public void draw(Canvas canvas) {
        canvas.saveLayer(roundRect, zonePaint, Canvas.ALL_SAVE_FLAG);
        canvas.drawRoundRect(roundRect, rect_adius, rect_adius, zonePaint);
        //
        canvas.saveLayer(roundRect, maskPaint, Canvas.ALL_SAVE_FLAG);
        super.draw(canvas);
        canvas.restore();
    }

}
时间: 2024-08-28 21:18:05

设置ImageView圆角的相关文章

iOS 设置图片imageView圆角——对图片进行裁剪

以前设置图片圆角总是把imageView设置成圆形,然后设置maskToBounds为YES,其实这样处理很消耗性能,图片多了之后比较卡,最好将图片进行裁剪后显示:这里有个分类可以用: UIImage+wiRoundedRectImage.h #import <UIKit/UIKit.h> @interface UIImage (wiRoundedRectImage) + (id)createRoundedRectImage:(UIImage*)image size:(CGSize)size

设置图片圆角的三种方式

//了解切圆角的方式有三种,我们一种一种来看 //圆角的第一种方式:(设置Layer属性) UIImageView *imageView = [[UIImageView alloc]init]; imageView.backgroundColor = [UIColor purpleColor]; imageView.frame = CGRectMake(110, 100, 200, 200); imageView.image = [UIImage imageNamed:@"1"]; /

Android学习笔记:如何设置ImageView中图片的显示方式

我们在用ImageView显示图片时,很多情况下图片的大小与ImageView的尺寸不是完全一样的.这时就涉及到该如何设置显示图片了. ImageView有个重要的属性是ScaleType,该属性用以表示显示图片的方式,共有很多种取值.另外也可以在xml文件中设置ImageView的android:scaleType属性达到调整效果. 这里我们介绍各种设置的含义: 1.ScaleType.CENTER(对应xml文件中为android:scaleType="center") 图片将位于

view设置成圆角

有时候我们需要把图片.textview等view设置成圆角: 需要Core Graphics框架 头文件: #import <QuartzCore/QuartzCore.h> code: view.layer.borderWidth = 1; view.layer.cornerRadius = 6; view.layer.masksToBounds = YES; view设置成圆角,布布扣,bubuko.com

Android - 设置ImageView为全屏显示

设置ImageView为全屏显示 本文地址: http://blog.csdn.net/caroline_wendy ImageView默认会适应屏幕大小, 如果想使用全屏填充, 则需要使用: android:scaleType="fitXY" android:scaleType="matrix" 注意android:scaleType的参数选择. 参考: http://developer.android.com/reference/android/widget/I

设置UIImage 圆角

//设置UIImage圆角 @interface UIImage(UIRoundedRectImage) + (id) createRoundedRectImage:(UIImage*)image size:(CGSize)size; @end @implementation UIImage(UIRoundedRectImage) static void addRoundedRectToPath(CGContextRef context, CGRect rect, float ovalWidth

动态设置ImageView的宽高以及位置

如何动态设置ImageView的宽高以及位置 package com.pic; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; public class PicTest extends Activity { private final

使用一个shape.xml文件,使用代码设置不同圆角背景颜色

给一个View设置一个圆角的背景颜色,我们一般会使用xml文件设置,使用<shape>节点设置,但是如果我们对一系列的View设置圆角北京,并且背景颜色色值不同,那么我们第一感觉想到的是创建多个xml文件,更改solid填充背景,其实我们可以使用一个xml文件就可以搞定,使用代码更改里面的填充颜色色值.废话不多话,看代码. 效果: 首先:创建activity_main.xml <RelativeLayout xmlns:android="http://schemas.andro

Gallery 里面怎么设置ImageView的OnClick事件

Gallery g=this.findViewById(R.id.gallery); g.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub } }); Gallery 里面怎么设置ImageV