【发布时间】:2016-10-27 21:14:30
【问题描述】:
我正在尝试在视图中绘制画布并在我在 XML 文件中定义的一些 TextView 下显示此视图。 每次我测试应用程序时,它都不会在设备上启动。
但是,这些部分本身可以工作:
当我将onCreate() 中的setContentView(R.layout.activity_main); 更改为setContetView(new CustomView(this)); 时,它可以工作,但当然没有textView。
我的activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:id="@+id/sampleText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some Text"/>
<com.example.simon.drawtest.CustomView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/sampleText"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
我的MainActivity.java:
package com.example.simon.drawtest;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
我的CustomView.java:
package com.example.simon.drawtest;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class CustomView extends View {
private Paint paint;
public CustomView(Context context) {
super(context);
paint = new Paint();
paint.setColor(Color.GRAY);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.BLUE);
canvas.drawCircle(200, 200, 100, paint);
}
}
【问题讨论】:
-
你不应该把你的自定义视图放在第一位吗?意味着在文件中更高,在 TextView 之前?
-
@milosmns 并没有什么不同。