Android自定义组件未显示

时间:2011-03-21 20:50:21

标签: android components

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中查看它,它肯定会被创建。 我在这里缺少什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

确保在致电findViewById(R.id.demoView)后致电setContentView(...) 。为确保您的观看次数膨胀,您可以从Log.d("DemoView", "Created")构造函数中调用DemoView