Android画布绘图不可见

时间:2014-07-05 12:40:17

标签: android android-canvas ondraw

如果我使用ImageView,我可以在我的活动中看到图像,但是当我用画布绘制它时我看不到。我错过了什么吗? drawable的尺寸为479px * 100px。我可以看到在其中使用断点调用onDraw函数。

public View getScrollingImage(){
    View temp = new View(this){
        BitmapDrawable cloud=  (BitmapDrawable) MainActivity.this.getResources().getDrawable(R.drawable.cartoon_clouds);
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            canvas.drawBitmap(cloud.getBitmap(), 0,0, null);
            invalidate();
        }
    };
    //ImageView temp = new ImageView(this);
    //temp.setImageDrawable(this.getResources().getDrawable(R.drawable.cartoon_clouds));
    temp.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT,1.0f));

    return temp;
}

将其添加到视图中,

mainLayout.addView(getScrollingImage());

我在Android 4.0.4上。

1 个答案:

答案 0 :(得分:3)

通过在视图中覆盖onMeasure函数来实现此功能,从Android: Drawing on Canvas in Scrollview获取此功能 谢谢stackOverflow。

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    setMeasuredDimension(cloud.getBitmap().getWidth(),
            cloud.getBitmap().getHeight());
}