我通过创建SurfaceView类的子类创建了自己的视图.
但是我无法弄清楚如何从xml布局文件中添加它.我当前的main.xml看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<View
class="com.chainparticles.ChainView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
编辑
更多信息
我的观点看起来像这样
package com.chainparticles;
public class ChainView extends SurfaceView implements SurfaceHolder.Callback {
public ChainView(Context context) {
super(context);
getHolder().addCallback(this);
}
// Other stuff
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理如下:
ChainView cview = new ChainView(this);
setContentView(cview);
Run Code Online (Sandbox Code Playgroud)
但是当尝试从xml中使用它时没有任何反应.
我创建了一个类:
public class TestCanvas extends View {
public TestCanvas(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.RED);
canvas.drawText("kal", 0, 100, paint);
canvas.save();
}
}
Run Code Online (Sandbox Code Playgroud)
现在我从活动中调用该类:
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TestCanvas tcanvas=new TestCanvas();
frameLayout=(FrameLayout)findViewById(R.id.frameLayout1);
frameLayout.addView(tcanvas);
}
}
Run Code Online (Sandbox Code Playgroud)
现在我想将canvas插入活动类并设置为ImageView.我该怎么做?