我在“我的应用程序”中使用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);
}
但即便如此,我也无法像原始的演示项目那样画画。 那么我哪里错了?
答案 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);
}