Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.87
Names
-1 / 4 / 0
Регистрация: 04.02.2013
Сообщений: 167
#1

Как нарисовать Bitmap на Canvas'е - Программирование Android

14.05.2013, 21:43. Просмотров 2258. Ответов 15
Метки нет (Все метки)

Здравствуйте, возникла проблема не могу поменять обычный фон WHITE на этот http://bazilisk.com/wp-content/uploads/2009/12/tetradnaya_kletka_1.jpg

Java
1
        canvas.drawColor(Color.WHITE);
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
кто разбирается, помогите пожалуйста обычный фон поменять на [url]http://bazilisk.com/wp-content/uploads/2009/12/tetradnaya_kletka_1.jpg[/url] заранее благодарен!
 
    package com.example.game02;
     
    import android.view.SurfaceView;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Random;
    import java.util.Timer;
     
    import android.content.Context;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Rect;
    import android.media.AudioManager;
    import android.media.SoundPool;
    import android.view.MotionEvent;
    import android.view.SurfaceHolder;
     
    public class GameView extends SurfaceView implements Runnable {
     
    private GameThread mThread;
    private List<Ball> ball = new ArrayList<Ball>();
    private List<Enemy> enemy = new ArrayList<Enemy>();
    private Thread thred = new Thread(this);
    private Bitmap enemies;
    private Gun gun;
    private Bitmap guns;
     
    private SoundPool sounds;
    private int sExplosion;
     
    public int shotX;
    public int shotY;
     
    private boolean running = false;
     
    public class GameThread extends Thread {
     
    private GameView view;
     
    public GameThread(GameView view) {
    this.view = view;
    }
     
    public void setRunning(boolean run) {
    running = run;
    }
     
    public void run() {
    while (running) {
    Canvas canvas = null;
    try {
     
    canvas = view.getHolder().lockCanvas();
    synchronized (view.getHolder()) {
     
    onDraw(canvas);
    testCollision();
    }
    } catch (Exception e) {
    } finally {
    if (canvas != null) {
    view.getHolder().unlockCanvasAndPost(canvas);
    }
    }
    }
    }
    }
     
    public GameView(Context context) {
    super(context);
     
    mThread = new GameThread(this);
     
    thred.start();
     
    getHolder().addCallback(new SurfaceHolder.Callback() {
     
    public void surfaceDestroyed(SurfaceHolder holder) {
    boolean retry = true;
    mThread.setRunning(false);
    while (retry) {
    try {
     
    mThread.join();
    retry = false;
    } catch (InterruptedException e) {
    }
    }
    }
     
    public void surfaceCreated(SurfaceHolder holder) {
    mThread.setRunning(true);
    mThread.start();
    }
     
    public void surfaceChanged(SurfaceHolder holder, int format,
    int width, int height) {
    }
    });
     
    enemies = BitmapFactory.decodeResource(getResources(),
    R.drawable.target);
    enemy.add(new Enemy(this, enemies));
     
    guns = BitmapFactory.decodeResource(getResources(), R.drawable.player2);
    gun = new Gun(this, guns);
    sounds = new SoundPool(10, AudioManager.STREAM_MUSIC, 0);
    sExplosion = sounds.load(context, R.raw.explode, 1);
    }
     
    protected void onDraw(Canvas canvas) {
    canvas.drawColor(Color.WHITE);
     
    Iterator<Enemy> i = enemy.iterator();
    while (i.hasNext()) {
    Enemy e = i.next();
    if (e.x >= 1000 || e.x <= 1000) {
    e.onDraw(canvas);
    i.remove();
    }
    }
     
    Iterator<Ball> j = ball.iterator();
    while (j.hasNext()) {
    Ball b = j.next();
    if (b.x >= 1000 || b.x <= 1000) {
    b.onDraw(canvas);
    } else {
    j.remove();
    }
    }
     
    canvas.drawBitmap(guns, 0, 120, null);
     
    }
     
    private void testCollision() {
    Iterator<Ball> b = ball.iterator();
    while (b.hasNext()) {
    Ball balls = b.next();
    Iterator<Enemy> i = enemy.iterator();
    while (i.hasNext()) {
    Enemy enemies = i.next();
     
    if ((Math.abs(balls.x - enemies.x) <= (balls.width + enemies.width) / 2f)
    && (Math.abs(balls.y - enemies.y) <= (balls.height + enemies.height) / 2f)) {
    sounds.play(sExplosion, 1.0f, 1.0f, 0, 0, 1.5f);
    i.remove();
    b.remove();
    }
    }
    }
    }
     
    public Ball createSprite(int resouce) {
    Bitmap bmp = BitmapFactory.decodeResource(getResources(), resouce);
    return new Ball(this, bmp);
    }
     
    public boolean onTouchEvent(MotionEvent e) {
    shotX = (int) e.getX();
    shotY = (int) e.getY();
     
    if (e.getAction() == MotionEvent.ACTION_DOWN)
    ball.add(createSprite(R.drawable.bullet));
     
    return true;
    }
     
    public void run() {
    while (true) {
    Random rnd = new Random();
    try {
    Thread.sleep(rnd.nextInt(2000));
    enemy.add(new Enemy(this, enemies));
    } catch (InterruptedException e) {
    e.printStackTrace();
    }
    }
    }
     
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2013, 21:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как нарисовать Bitmap на Canvas'е (Программирование Android):

Как сконвертировать BitMap в BLOB - Программирование Android
Доброго вечера. У меня есть переменная BitMap (получаю фото с камеры), которую хочу записать в БД (SQLite) в поле BLOB. Но в чистом виде...

Как правильно работать с BITMAP? - Программирование Android
задача менять цвет картинки которая стоит в фоне у EditText; ну почитал, посмотрел ... везде работают с ImageView/// как мне...

Как создать Bitmap черно-белый - Программирование Android
Вот так создаю Bitmap bitmap=Bitmap.createBitmap(720, 1280, Bitmap.Config.RGB_565); То есть 2 байта на точку. А мне надо 2 бита...

Как по адресу фотографии fileUri получить Bitmap? - Программирование Android
Как можно по адресу фотографии fileUri получить Bitmap? мне все не найти как в коде расписать это дело

Как из GIF файла скопировать кадры в Bitmap массив ? - Программирование Android
Доброго времени суток! Подскажите как из GIF файла скопировать кадры в Bitmap массив и как из GIF файла получить время смены кадров?

Как нарисовать Bitmap на Bitmap? - C++ Builder
Bitmap1-&gt;Canvas-&gt;Draw(1,1,Bitmap2); Так не работает, хотя с Image проходило.

15
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
15.05.2013, 19:20 #16
Цитата Сообщение от Names Посмотреть сообщение
какой должен быть размер картинки что бы не было черной полоски
не меньше области на которую вы накладываете фон.
0
15.05.2013, 19:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 19:20
Привет! Вот еще темы с ответами:

Нарисовать прошлый Bitmap на новом так, чтобы небыл растянут рисунок, если новый Bitmap больше размером - C#
Короче пытался сделать такое дело: Рисую фигуры на форме, когда отпускаю левую кнопку мыши (когда кнопка зажата, то растягивается например...

Как нарисовать Bitmap в конкретной точке на контроле Image ? - C# WPF
Привет ! У меня есть 9 небольших Bitmap'ов, мне нужно их нарисовать в определенных точках, на System.Windows.Contols.Image. На...

Сетка на Canvasе - Delphi
На Canvasе (20*30) нарисована сетка (20*20) и с шагом Даны координаты координаты нужно найти координаты верхнего левого угла яцейки сетка

Как создать bitmap из области (по координатам пикселей) другого bitmap - C#
Здравствуйте. Подскажите пожалуйста как создать bitmap из области(по координатам пикселей) другого bitmap. Вообщем обрезать.


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru