package com.wisedu.scc.love.widget.image; import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.TypedValue; import android.widget.RelativeLayout; import com.wisedu.scc.love.R; /** * 裁剪图片布局 */ public class ClipImageLayout extends RelativeLayout { /**缩放图片控件*/ private ClipZoomImageView mZoomImageView; /**图片边框控件*/ private ClipImageBorderView mClipImageView; /**要处理的图片*/ private Drawable mDrawable = null; /** 水平内边距, 默认为20 */ private int mHorizontalPadding = 20; public ClipImageLayout(Context context, AttributeSet attrs) { super(context, attrs); /**初始化VIEW*/ mZoomImageView = new ClipZoomImageView(context); mClipImageView = new ClipImageBorderView(context); android.view.ViewGroup.LayoutParams layoutParams = new LayoutParams( android.view.ViewGroup.LayoutParams.MATCH_PARENT, android.view.ViewGroup.LayoutParams.MATCH_PARENT); /**设置图片*/ mZoomImageView.setImageDrawable(getDrawable()); /**将VIEW加入Layout*/ this.addView(mZoomImageView, layoutParams); this.addView(mClipImageView, layoutParams); /**计算padding的px*/ mHorizontalPadding = (int) TypedValue.applyDimension( TypedValue.COMPLEX_UNIT_DIP, mHorizontalPadding, getResources() .getDisplayMetrics()); mZoomImageView.setHorizontalPadding(mHorizontalPadding); mClipImageView.setHorizontalPadding(mHorizontalPadding); } /** * 对外公布设置边距的方法,单位为dp */ public void setHorizontalPadding(int mHorizontalPadding) { this.mHorizontalPadding = mHorizontalPadding; } /** * 对外公布设置边距的方法,单位为dp */ public void setDrawable(Drawable drawable) { this.mDrawable = drawable; } /** * 对外公布设置边距的方法,单位为dp */ public Drawable getDrawable() { return this.mDrawable; } /** * 裁切图片 * @return */ public Bitmap clip() { return mZoomImageView.clip(); } }