@dmitriycor88

Как вставить в активити с View кнопки?

У меня есть такой класс:
package com.example.vid;



import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Path.Direction;
import android.graphics.Rect;
import android.util.Log;
import android.view.Menu;
import android.view.View;

public class MainActivity extends Activity  {
	
	private int puzzle[];
	private PuzzleView puzzleView;
		
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		puzzleView = new PuzzleView(this);
		setContentView(puzzleView);
		puzzleView.requestFocus();
		
		}
	public class PuzzleView extends View {
		private static final String TAG = "Sudoku" ;
		private final MainActivity game;
		private float width; // ширина одного тайла
		private float height; // высота одного тайла
		private int selX; // координата x выделенной области
		private int selY; // координата y выделенной области
		private final Rect selRect = new Rect();
		
		public PuzzleView(Context context) {
		super(context);
		this.game = (MainActivity) context;
		setFocusable(true);
		setFocusableInTouchMode(true);
		}
		@Override
		protected void onSizeChanged(int w, int h, int oldw, int oldh) {
		width = w / 100f;
		height = h / 32f;
		getRect(selX, selY, selRect);
		Log.d(TAG, "onSizeChanged: width " + width + ", height "
		+ height);
		super.onSizeChanged(w, h, oldw, oldh);
		}
		
		private void getRect(int x, int y, Rect rect) {
		rect.set((int) (x * width), (int) (y * height), (int) (x
		* width + width), (int) (y * height + height));
		}
		
		@Override
		protected void onDraw(Canvas canvas) {
		// Рисование фона...
		Paint background = new Paint();
		background.setColor(getResources().getColor(
		R.color.puzzle_background));
		canvas.drawRect(0, 0, getWidth(), getHeight(), background);
		// Рисование игровой доски...
		// Рисование чисел...
		// Рисование подсказок...
		// Рисование выделения...
		// Рисование доски...
		// Определение цветов для линий решетки
		Paint dark = new Paint();
		dark.setColor(getResources().getColor(R.color.puzzle_dark));
		Paint hilite = new Paint();
		hilite.setColor(getResources().getColor(R.color.puzzle_hilite));
		Paint light = new Paint();
		light.setColor(getResources().getColor(R.color.puzzle_light));
		// Рисование вспомогательных линий решетки
		for (int i = 0; i < 32; i++) {
		canvas.drawLine(0, i * height, getWidth(), i * height,
		light);
		canvas.drawLine(0, i * height + 1, getWidth(), i * height
		+ 1, hilite);
		canvas.drawLine(i * width, 0, i * width, getHeight(),
		light);
		canvas.drawLine(i * width + 1, 0, i * width + 1,
				
				getHeight(), hilite);
				}
				// Рисование основных линий решетки
				for (int i = 0; i < 100; i++) {
				//if (i % 5 != 0)
				//continue;
				canvas.drawLine(0, i * height, getWidth(), i * height,
				dark);
				
				canvas.drawLine(0, i * height + 1, getWidth(), i * height
				+ 1, hilite);
				canvas.drawLine(i * width, 0, i * width, getHeight(), dark);
				canvas.drawLine(i * width + 1, 0, i * width + 1,
				getHeight(), hilite);
				}
				
				Paint selected = new Paint();
				selected.setColor(getResources().getColor(
				R.color.color_4));
				getRect(2, 0, selRect);
				canvas.drawRect(selRect, selected);
		
				
				
		}
		
		
	}

}

наследуется от View и рисует черный прямоугольник на сетке, а как добавить кнопки внизу? Получается, нужно как-то или из layout вызывать View, или из класса делать кнопки и ограничивать View. Подскажите идею.
  • Вопрос задан
  • 3496 просмотров
Решения вопроса 3
@Mintormo
Очень просто. У вас обычная вьюха, значит ее можно точно также объявить в XML вместе со стандартными кнопками. Берете, например, LinearLayout и помещаете в него вашу вьюшку и две стандартные кнопки.
Ответ написан
VYakushev
@VYakushev
Разработчик Android в Nowtaxi
Советую поступить так:
1. Вынести класс PuzzleView в отдельный файл.
2. Для активити создать layout в XML-файле. К примеру, это будет LinearLayout с кнопками и с объектом
Ответ написан
Комментировать
@dmitriycor88 Автор вопроса
developer.android.com/intl/ru/training/custom-view... там есть пример CustomView все я догнал как это делать!
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы