如果我使用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上。
答案 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());
}