自定义imageview 实现按照图片比例加载图片

2017-12-28  本文已影响0人  杨伟乔

import android.content.Context;

import android.graphics.Canvas;

import android.graphics.drawable.Drawable;

import android.util.AttributeSet;

import android.widget.ImageView;

public classSubjectImageViewextendsImageView{

publicSubjectImageView(Contextcontext,AttributeSetattrs) {

super(context,attrs);

//TODOAuto-generated constructor stub

    }

@Override

protectedvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec) {

//获取真实的图片

Drawabledrawable=getDrawable();

if(drawable!=null){

//获取真实的宽

intwidth=drawable.getMinimumWidth();

//获取真实的高 

intheight=drawable.getMinimumHeight();

//计算宽和高的比例 

floatscale= (float)width/height;

//获取测量宽的规则

intwithsize=MeasureSpec.getSize(widthMeasureSpec);

//按照比例计算高的测量规则 

intheightsize= (int) (withsize/scale);

//设置高的测量规则 第一个值是按照比例计算的高 第二个参数是测量模式 精确

heightMeasureSpec=MeasureSpec.makeMeasureSpec(heightsize,MeasureSpec.EXACTLY);

        }

super.onMeasure(widthMeasureSpec,heightMeasureSpec);

    }

上一篇 下一篇

猜你喜欢

热点阅读