Android自定义组件出现问题。试图绘制椭圆形但没有任何事情发生。
我在布局xml文件中有这一行
<android.project.realtimedata.DemoView android:id="@+id/demoView"
android:layout_width="fill_parent" android:layout_height="wrap_content" />
以下是我的自定义组件类的代码。
package android.project.realtimedata;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
import android.util.AttributeSet;
import android.view.View;
public class DemoView extends View{
ShapeDrawable thisGauge = null;
public DemoView(Context context){
super(context);
init();
}
public DemoView(Context context, AttributeSet attrs)
{
super(context, attrs);
init();
}
private void init(){
int x = 10;
int y = 10;
int width = 300;
int height = 50;
thisGauge = new ShapeDrawable(new OvalShape());
thisGauge.getPaint().setColor(0xff74AC23);
thisGauge.setBounds(x, y, x + width, y + height);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
thisGauge.draw(canvas);
}
}
我在活动的onCreate方法中也有这一行
demoView = (DemoView) findViewById(R.id.demoView);
每当我启动应用程序时,自定义组件都不存在。 我尝试从LogCat中查看它,它肯定会被创建。 我在这里缺少什么?
提前致谢。
答案 0 :(得分:0)
确保在致电findViewById(R.id.demoView)
后致电setContentView(...)
。为确保您的观看次数膨胀,您可以从Log.d("DemoView", "Created")
构造函数中调用DemoView
。