При попытке запустить мое приложение появляется следующая ошибка:
java.lang.RuntimeException: Unable to start activity ComponentInfo{g.companieshouse.companieshouse/g.companieshouse.companieshouse.GraphActivity}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class g.companieshouse.companieshouse.DrawGraphTest
Мой пользовательский класс рисует холст:
public class DrawGraphTest extends View {
int mWidth = this.getResources().getDisplayMetrics().widthPixels;
int mHeight = this.getResources().getDisplayMetrics().heightPixels;
public DrawGraphTest(Context context) {
super(context);
//Various paints and such...
//Set point to middle of screen
point1 = new Point(mWidth / 2, mHeight / 2);
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//Draw various stuff to canvas
}
Активность:
public class GraphActivity extends AppCompatActivity {
DrawGraphTest drawGraphTest;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_graph);
drawGraphTest = (DrawGraphTest)findViewById(R.id.drawGraphTest);
}
}
XML:
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".GraphActivity">
<g.companieshouse.companieshouse.DrawGraphTest
android:id="@+id/drawGraphTest"
android:layout_width="350dp"
android:layout_height="300dp"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Я также хотел спросить, возможно ли масштабировать то, что рисуется в классе DrawGraphTest, так, чтобы оно вписывалось в границы пользовательскогопосмотреть на активность?
В настоящее время он настроен на весь экран любого устройства, на котором запущено приложение (см. Пункт 1), ура!