Использование нескольких представлений внутри одного действия с холстом - PullRequest
0 голосов
/ 07 ноября 2010

По сути, я пытаюсь добиться того, чтобы я хотел, чтобы холст, на который я мог передавать растровые изображения, отображался на экране вместе с остальными объектами моего просмотра (кнопками, текстовыми представлениями и т. Д.).

Я создалкласс для представления холста, подобный такому (пока он мало что делает):

public class Foo extends View {

    public Foo(Context context) {
        super(context);
    }

    @Override
    public void onDraw(Canvas canvas) {
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);

        // draw a solid blue circle
        paint.setColor(Color.BLUE);
        canvas.drawCircle(20, 20, 15, paint);
    }
}

Теперь вот мое основное занятие:

public class Main extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button switchLeft = (Button) findViewById(R.id.switch_left);
        switchLeft.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
               //TODO 
            }
        });

        Button switchRight = (Button) findViewById(R.id.switch_left);
        switchRight.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //TODO
            }
        });

        Foo myCanvas = new Foo(this);
        setContentView(myCanvas);
    }
}

Когда я вызываю setContentView для холстапросмотр объекта, остальные мои виды исчезают с экрана.Как я могу вызвать этот объект просмотра, не потеряв остальные мои виды?

Спасибо.

1 Ответ

1 голос
/ 07 ноября 2010

вы можете сослаться на свой собственный вид в вашем "main" -layout

...
<xxx.yyy.Foo
        android:background="@drawable/red"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
...