У меня есть абстрактный класс, расширенный от класса View и 4 подкласса для выполнения серии векторных чертежей. Затем у меня есть макет с четырьмя кнопками и представлением, чтобы показать чертежи. В зависимости от того, какая кнопка нажата, в этом представлении должны быть нарисованы разные цифры. Проблема в том, что когда я нажимаю одну кнопку, рисунки рисуются на весь экран, кнопки исчезают. Как можно решить эту проблему?Android - добавление пользовательского представления к компоненту в макете xml
public abstract class DrawFiguresWithDimensions extends View{
public DrawingFiguresWithDimensions(Context context)
//...
}
public class DrawRectangleWithDimensions extends DrawFiguresWithDimensions {..}
public class DrawTWithDimensions extends DrawFiguresWithDimensions {..}
public class DrawDobleTWithDimensions extends DrawFiguresWithDimensions {..}
public class DrawBoxWithDimensions extends DrawFiguresWithDimensions {..}
Вот "activity_main.xml":
<LinearLayout
android:id="@+id/mainLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="10"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1"
android:weightSum="4"
>
<Button
android:id="@+id/btnSecRec"
android:text="Rec"
android:onClick="btnSecRec"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<Button
android:id="@+id/btnSecT"
android:text="T"
android:onClick="btnSecT"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<Button
android:id="@+id/btnSecDobleT"
android:text="DT"
android:onClick="btnSecDobleT"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<Button
android:id="@+id/btnSecCajon"
android:text="Box"
android:onClick="btnSecCajon"
android:layout_weight="1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
<View class="com.tari.drawfigureswithdimensions.DrawFiguresWithDimensions"
android:id="@+id/viewDatosSec"
android:layout_weight="8"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
"MainActivity.java"
public class MainActivity extends Activity {
DrawRectangleWithDimensions sec1;
DrawTWithDimensions sec2;
DrawDoubleTWithDimensions sec3;
DrawBoxWithDimensions sec4;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void btnSecRec(View view){
sec1 = new DrawRectangleWithDimensions(this);
sec1.setFigure(10, 40);
setContentView(sec1);
}
public void btnSecT(View view){
sec2 = new DrawTWithDimensions(this);
sec2.setFigure(100, 20, 20, 70);
setContentView(sec2);
}
public void btnSecDobleT(View view){
sec3 = new DrawDoubleTWithDimensions(this);
sec3.setFigure(100, 20, 20, 90, 50, 25);
setContentView(sec3);
}
public void btnSecCajon(View view){
sec4 = new DrawBoxWithDimensions(this);
sec4.setFigure(100, 20, 20, 80);
setContentView(sec4);
}
Спасибо за ваш комментарий, Майкл. Я создал ViewGroup с четырьмя представлениями DrawFiguresWithDimensions в макете, но я все еще придерживаюсь того, как реализовать код динамически. Не могли бы вы рассказать мне, как это сделать, например, в public void btnSecRec (View view) {}, используя DrawRectangleWithDimensions? – David
@David Я только что обновил свой ответ с дополнительной информацией о том, как вы динамически размещаете представление в родительской группе ViewGroup. –
Спасибо, Майкл! что решило проблему! Спасибо, что были настолько конкретны, это отлично подходит для начинающих, таких как я. – David