Форум программистов, компьютерный форум CyberForum.ru

Canvas - не могу реализовать отображение графических элементов - Android

Войти
Регистрация
Восстановить пароль
 
Роmaн
0 / 0 / 0
Регистрация: 31.08.2013
Сообщений: 8
31.08.2013, 11:34     Canvas - не могу реализовать отображение графических элементов #1
Все привет! Некоторое время программировал на AS3, решил освоить программирование на Андроиде на примере игры Морской Бой, столкнулся с проблемой непонимания механизма отображения графики, теорию перечитывал, все равно непонятно. Имеется основная Активити
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.example.smallgame;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.widget.TableLayout;
import android.widget.Toast;
 
public class RunActivity extends Activity
{
    private TableLayout layout;
    private FieldView fieldview ;
    private EnemyField eField;
    int xs;
    int ys;
    String selX;
    String selY;
     
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        
        super.onCreate(savedInstanceState);
        fieldview = new FieldView(this);
       
        setContentView(R.layout.activity_small_start);
        layout=(TableLayout)findViewById(R.id.enemy_layout);
        layout.addView(fieldview);
        eField=new EnemyField();   // класс логики расстановки вражеских кораблей, получаем массив   
    
    } 
   
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int s=0;
           if (event.getAction() != MotionEvent.ACTION_DOWN)
                  return super.onTouchEvent(event);
               xs=(int) event.getX();
               ys=(int) event.getY();
               xs=(int) xs/33;
               ys=(int) ys/33;
            s=EnemyField.ToNumber(xs,ys);
            s=eField.getmField()[s][0]; // считывание значения из массива расстановки врага
            selX=String.valueOf(s);        
                    
            Toast toast = Toast.makeText(getApplicationContext(),selX ,Toast.LENGTH_SHORT); 
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show(); // вместо сообщения в координатах xs, ys необходимо отображать графический файлик 
                                   // из ресурсов.
 
            return true;
    }
    
  
}
Собственно, вместо сообщения Toast необходимо обращение к отображению графики с возможностью выбора произвольной картинки, типа ....класс отображения (имя картинки, координата x, координата y)
Собственно класс с Canvas-ом, который просто отображает поле.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.example.smallgame;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.view.View;
 
public class FieldView extends View {
 
    public FieldView(Context context) {
        super(context);     
    }   
    @Override
    protected void onDraw (Canvas canvas) {
    
        Bitmap myBitmap;
 
        for (int i=0;i<10;i++){
            for (int j=0;j<10;j++){
            myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empty);
            canvas.drawBitmap(myBitmap, 33 * i, 33*j, null);
            
            }
        }   
     }  
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.08.2013, 11:34     Canvas - не могу реализовать отображение графических элементов
Посмотрите здесь:

Canvas в JPEG Android
вылетает canvas Android
Canvas Android
Canvas и Activity Android
Canvas и Button Android
canvas.rotate Android
Не могу реализовать условие Drag and Drop Android
Android Карта на Canvas
Как реализовать правильное отображение View элементов? Android
Потоки. Canvas Android
Android Как реализовать выделение элементов таблицы
Не могу реализовать TimePickerDialog Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
name?
 Аватар для name?
198 / 169 / 18
Регистрация: 01.06.2010
Сообщений: 371
Завершенные тесты: 1
31.08.2013, 12:53     Canvas - не могу реализовать отображение графических элементов #2
Java
1
setContentView(R.layout.activity_small_start);
заменить на
Java
1
setContentView(layout);
так же в прорисовке бессмысленно создаете много раз один о тот же битмап

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class FieldView extends View {
 
    private Bitmap myBitmap;
    public FieldView(Context context) {
        super(context);  
        myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.empty);   
    }   
    @Override
    protected void onDraw (Canvas canvas) {
 
        for (int i=0;i<10;i++){
            for (int j=0;j<10;j++){
            
            canvas.drawBitmap(myBitmap, 33 * i, 33*j, null);
            
            }
        }   
     }  
}
Yandex
Объявления
31.08.2013, 12:53     Canvas - не могу реализовать отображение графических элементов
Ответ Создать тему
Опции темы

Текущее время: 13:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru