注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

关于重写View的onDraw的问题  

2010-05-28 11:29:11|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
关于重写View的onDraw的问题:
首先里面的坐标参考点是屏幕左上角。
如果几个重写onDraw的View一起用,只有一个View能显示出来。第一个能显示。后面的显示不回来。Why?I am puzzled.
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;

public class MyView extends View {
    private Paint mPaint;
    private Context mContext;
    private static final String mString = "Welcome to Mr Wei's blog";
    final static String TAG="hubin";
    int x=0;
    int y=0;
    int w=10;
    int h=300;
    void setX(int x)
    {
        this.x=x;
    }
    void setY(int x)
    {
        this.y=y;
    }
    boolean flag=false;
    public MyView(Context context) {
        super(context);
        mPaint = new Paint();
        flag=true;
        Log.i(TAG, "create1");
    }

    public MyView(Context context, AttributeSet attrs)// 【如果在布局文件中定义了属性,就回调用该构造函数】
    {
        super(context, attrs);
        mPaint = new Paint();
        Log.i(TAG, "create3");
        TypedArray a = context
                .obtainStyledAttributes(attrs, R.styleable.MyView);

        int textColor = a.getColor(R.styleable.MyView_textColor, 0XFFFFFFFF);
        float textSize = a.getDimension(R.styleable.MyView_textSize, 36);

        mPaint.setTextSize(textSize);
        mPaint.setColor(textColor);

        a.recycle();
    }

    @Override
    protected void onDraw(Canvas canvas) {
        Log.i(TAG,"flag:"+x);
        // TODO Auto-generated method stub
        //super.onDraw(canvas);
        // 设置填充
        mPaint.setStyle(Style.FILL);

        // 画一个矩形,前俩个是矩形左上角坐标,后面俩个是右下角坐标
        canvas.drawRect(new Rect(x, y, x+w, y+h), mPaint);

        mPaint.setColor(Color.BLUE);
        // 绘制文字
        canvas.drawText(mString, x+w, y+h, mPaint);
        
        
    }
}
  评论这张
 
阅读(3810)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017