如何为这个项目制作自定义xml布局并正常工作它正在工作?

时间:2011-11-30 11:55:41

标签: android android-layout android-widget

我在“我的应用程序”中使用this demo Project

但是在这个项目中有一个由MyView类创建的动态布局。 而不是我想创建自定义布局。

那怎么可能? 请输入一些XML代码(如果需要,还可以使用Java代码进行布局)。 感谢。

编辑:

我已经创建了这样的XML布局:

<view
        class="com.project.twsbi.FingerPaint$MyView"
        android:visibility="visible" 
        android:id="@+id/image"      
        android:background="#55000000"
        android:layout_width="fill_parent"         
        android:layout_height="fill_parent"
        />  

就像原始项目已将资源设置为FingerPaint类一样,如下所示:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(new MyView(this)); // Edited
    setContentView(R.layout.main);

    // ste resources to View of Paint
    view = (View)findViewById(R.id.image);
    view = new MyView(this);
}

但即便如此,我也无法像原始的演示项目那样画画。 那么我哪里错了?

1 个答案:

答案 0 :(得分:1)

首先关闭 - 您必须删除该行:

view = new MyView(this);

因为它会覆盖这一行:

view = (View)findViewById(R.id.image);

并且参考view将不会是您的布局中可见的那个。

其次 - 为了能够在XML布局中使用自定义View,您需要提供一个包含AttributeSet的构造函数,例如:

public MyView(Context c, AttributeSet atrs ) {
    super(c, atrs);
    mPath = new Path();
    mBitmapPaint = new Paint(Paint.DITHER_FLAG);
}