关闭

自定义view

42人阅读 评论(0) 收藏 举报

参考博客http://blog.csdn.net/pi9nc/article/details/18764863

自定义view实现如下效果
衣服图与设计图叠加,显示在列表中
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec,heightMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int heightSize = MeasureSpec.getSize(heightMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);

    if (widthMode == MeasureSpec.EXACTLY && heightMode == MeasureSpec.AT_MOST){
        heightSize = widthSize *5 / 4;
        setMeasuredDimension(widthSize,heightSize);
    }else if (widthMode == MeasureSpec.AT_MOST && heightMode == MeasureSpec.EXACTLY){
        widthSize = heightSize *4 /5;
        setMeasuredDimension(widthSize,heightSize);
    }else{
        widthSize = getMeasuredWidth();
        heightSize = widthSize *5 / 4;
    }

    setDesignPosition(widthSize,heightSize,type);
}

public void setDesignPosition(int w,int h,int type){
    ViewGroup.LayoutParams params = simpleDraweeView_clothes.getLayoutParams();
    params.width = w;
    params.height = h;
    simpleDraweeView_clothes.setLayoutParams(params);

    if(type == CommonConstants.TShit){
        //T恤
        LayoutParams param = (LayoutParams) simpleDraweeView_design.getLayoutParams();
        int l = (int) ((w - 0.371 * w)/2);
        int t = (int) ((h - 0.414 * h)/2);
        int width = (int) (0.371 * w);
        int height = (int) (0.414 * h);

        param.setMargins(l, t, 0, 0);
        param.height = height;
        param.width = width;
        simpleDraweeView_design.setLayoutParams(param);
    }

}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:92次
    • 积分:20
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档