20.10.2022 / 23:56 | |
Helltar Пользователь Сейчас: Offline
Регистрация: 29.11.2011
| |
21.10.2022 / 01:37 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| Helltar, во, второе выглядит как то, что нужно. А шо, в андроиде часто так вот приходится всё делать, через код? Я думал можно будет как-то в интерфейсе (axml) установить параметр какой-нибудь __________________
わからない!! |
15.01.2023 / 15:18 | |
Vlad_jonson Пользователь Сейчас: Offline
Имя: Владислав Откуда: Киев Регистрация: 09.08.2014
| В андроид если продублировать любой файл из values в папку /res/values-v99999980000001
apk tool не сможет декомпилировать ресурсы |
24.12.2023 / 23:46 | |
N0004 Пользователь Сейчас: Offline
Имя: Arthur Alunts Регистрация: 15.10.2023
| Арег, привет, Перешел на Android Studio. Как сделать приложение с 3 экранами canvas + управление как в MineCraft стрелочками на одном только 1-ом экране. Пока получается какая-то лажа. Канва классы и созданы, и рисуются, но не получается переключаться между экранами, пробовал так: setContentView(myCanvas0);
setContentView(myCanvas1);
setContentView(myCanvas2);
Need help! Изменено vladgba (25.12 / 11:07) (всего 2 раза) |
27.12.2023 / 07:13 | |
Витаминыч Супермодератор Сейчас: Offline
Имя: Василиус Откуда: RZN Регистрация: 20.04.2012
| N0004, а тебе нужен код пули? __________________
わからない!! |
27.12.2023 / 11:52 | |
Tygrain Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Витаминыч, мне нужен
|
27.12.2023 / 12:15 | |
N0004 Пользователь Сейчас: Offline
Имя: Arthur Alunts Регистрация: 15.10.2023
| Витаминыч, Нет, дорогой, только это. Хочу перенести свою прогу из J2ME на Android! А там, понимаш, какие-то layout-макеты, а как к классу MyCanvas extends View{} присобачить - не знаю. Просто хочу сделать программные кнопки: "вверх-вниз-влево-вправо на Готике... + 2 программные кнопки на всех экранах чтобы листать их. Уже 2 календаря написал один на PC/Win10, на Phone/J2ME. Но экраны MyCanvas переключать с помощь set какого-нибудь: по программным клавишам LEFT-RIGH... Уже 2-я неделя прошла... Даны: классы MainActivity и N классов: MyCanvas0...MycanvasN просто с прорисовкой: onDraw(){ <Draw то(); Draw сё();> Invalidate(); } Есть идеи: как это сделать? Изменено N0004 (27.12 / 12:26) (всего 3 раза) |
28.12.2023 / 15:37 | |
N0004 Пользователь Сейчас: Offline
Имя: Arthur Alunts Регистрация: 15.10.2023
| Кто-нидь, сурс скиньте, пожалуйста. "Умоляю..." - как сказал один кот, когда запахло мясом. Просто нужно как-то переключать 3 класса прорисовки (3 Экрана переключать), именуемые: class MyCanvas0, MyCanvas1 ... MyCanvas2... extends View{ Invalidate(); }
- программными клавишами. Need help! Как это сделать? Изменено N0004 (28.12 / 15:41) (всего 5 раз) |
28.12.2023 / 17:28 | |
SuperSystem Пользователь Сейчас: Offline
Имя: Dmitry Откуда: Киев Регистрация: 04.06.2017
| activity_main.xml activity_main.xml <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/buttonSwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Switch Canvas"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"/>
<FrameLayout
android:id="@+id/frameLayoutCanvas"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/buttonSwitch">
<!-- Здесь будет отображаться MyCanvas -->
</FrameLayout>
</RelativeLayout>
MainActivity.java MainActivity.java import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
private MyCanvas[] canvases; // Массив с экземплярами MyCanvas
private int currentCanvasIndex = 0;
private FrameLayout frameLayoutCanvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frameLayoutCanvas = findViewById(R.id.frameLayoutCanvas);
// Создаем экземпляры MyCanvas и добавляем их в массив
canvases = new MyCanvas[]{new MyCanvas0(this), new MyCanvas1(this), /* ... */, new MyCanvasN(this)};
// Показываем первый MyCanvas
showCanvas(currentCanvasIndex);
Button buttonSwitch = findViewById(R.id.buttonSwitch);
buttonSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// При нажатии кнопки переключаемся на следующий MyCanvas
currentCanvasIndex = (currentCanvasIndex + 1) % canvases.length;
showCanvas(currentCanvasIndex);
}
});
// Добавьте обработчики для других кнопок (Up, Down, Left, Right)
// Например:
/*
Button buttonUp = findViewById(R.id.buttonUp);
buttonUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
canvases[currentCanvasIndex].moveUp();
}
});
*/
}
// Метод для отображения MyCanvas по индексу в массиве
private void showCanvas(int canvasIndex) {
frameLayoutCanvas.removeAllViews();
frameLayoutCanvas.addView(canvases[canvasIndex]);
}
}
MyCanvas.java (Образец) MyCanvas.java (Образец) import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.View;
public class MyCanvas extends View {
private Paint paint;
public MyCanvas(Context context) {
super(context);
init();
}
private void init() {
paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
// Пример простой отрисовки - прямоугольник в центре экрана
int rectWidth = width / 2;
int rectHeight = height / 2;
int left = (width - rectWidth) / 2;
int top = (height - rectHeight) / 2;
int right = left + rectWidth;
int bottom = top + rectHeight;
canvas.drawRect(left, top, right, bottom, paint);
}
}
__________________
HTML - !это язык программирования Изменено Magatino (31.12 / 22:09) (всего 1 раз) |
29.12.2023 / 05:22 | |
N0004 Пользователь Сейчас: Offline
Имя: Arthur Alunts Регистрация: 15.10.2023
| Вернее будет так: класс: MainActivity{} должен выглядеть вот так, а остальное, как вы сказали: (Во всяком случае у меня сейчас работает всё). MainActivity.java MainActivity.java package j.main1;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import androidx.appcompat.app.AppCompatActivity;
import j.main1.R;/*
public static void delay(Thread sedrftgyhuwaq1qaz2wsx3edcmilisec){
}*/
public class MainActivity extends AppCompatActivity {
public static void delay(int ms){
try{ Thread.sleep(ms); }
catch( Exception ex){ex.printStackTrace();
}
}
private View[] canvases; // Массив с экземплярами MyCanvas
private int currentCanvasIndex = 0;
private FrameLayout frameLayoutCanvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
frameLayoutCanvas = findViewById(R.id.frameLayoutCanvas);
// Создаем экземпляры MyCanvas и добавляем их в массив
canvases = new View[]{ new MyCanvas0(this), new MyCanvas1(this),new MyCanvas2(this)};
// Показываем первый MyCanvas
showCanvas(currentCanvasIndex);
Button buttonSwitch = findViewById(R.id.buttonSwitch);
buttonSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// При нажатии кнопки переключаемся на следующий MyCanvas
currentCanvasIndex = (currentCanvasIndex + 1) % canvases.length;
showCanvas(currentCanvasIndex);
}
});
// Добавьте обработчики для других кнопок (Up, Down, Left, Right)
// Например:
/*
Button buttonUp = findViewById(R.id.buttonUp);
buttonUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
canvases[currentCanvasIndex].moveUp();
}
});
*/
}
// Метод для отображения MyCanvas по индексу в массиве
private void showCanvas(int canvasIndex) {
frameLayoutCanvas.removeAllViews();
frameLayoutCanvas.addView(canvases[canvasIndex]);
}
}
Спасибо, а как прикрепить JtextInputField, скажем только к 1-ому MyCanvas1? Изменено Magatino (31.12 / 22:10) (всего 5 раз) |