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

Белый экран на телефоне - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Воспроизвести звук по нажатию кнопки http://www.cyberforum.ru/android-dev/thread863399.html
Добрый день! Используя пример, написал приложение, которое по нажатию на кнопку воспроизводит определённый звук. Но загвоздка в том, что на все строки такого типа, Eclipse выдаёт ошибку. ...
Программирование Android Open file dialog доброго времени. вопрос простой - как сделать (вызвать, если уже есть такой) диалог выбора и открытия файла. аналог Open File Dialog в .NET. http://www.cyberforum.ru/android-dev/thread863357.html
Программирование Android Просмотр файлов другого устройства по Bluetooth
Здраствуйте, мне нужна помощь (я начинаю только программировать на андроид). Как на сэмпловском примере блютуз чата можно сделать просмотр файлов(директорий) другого телефона на андроид? Если не...
Программирование Android ListView на ViewPager
Добрый день. Есть простенький ViewPager на layout. Там где на layout просто TextView заполняемый из констант все ок. А там где на layout должен быть ListView - пусто. Все делал по примерам из...
Программирование Android shape, управление границей http://www.cyberforum.ru/android-dev/thread863039.html
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:radius="5dp" /> <solid...
Программирование Android Facebook api. Отправка личного сообщения Здравствуйте. Не получается создать запрос на отправку личного сообщения пользователю. Пробовал гуглить искать информацию, но нашёл только пример отправки сообщения на стену:... подробнее

Показать сообщение отдельно
Nikkilla
2 / 2 / 0
Регистрация: 24.02.2013
Сообщений: 62
14.05.2013, 18:28  [ТС]
Спасибо за ссылки! За эти 2 дня провел пару тестов и выяснил, что у меня не рисуются полигоны, а белое, потому, что это цвет очистки экрана.

Вот сделал тестовый проект. Цвет очистки поставил зеленым. При клике по экрану рисуется красная точка в этом месте. Проблема в том, что на эмуляторе все нормально. а вот на телефоне фот зеленый, но точки не рисуются.

Вот код проекта. Тестил на андроид 2.1

MainActivity.java - главный класс проекта
Кликните здесь для просмотра всего текста

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
package ua.nikkilla.nje4a;
 
import android.opengl.GLSurfaceView;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class MainActivity extends Activity {
    
    public GLSurfaceView glSurfaceView; 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        glSurfaceView = new RenderGlobal(this);
        setContentView(glSurfaceView);
    }
 
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
}


RenderGlobal.java - главный класс рендера
Кликните здесь для просмотра всего текста

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
package ua.nikkilla.nje4a;
 
import java.util.ArrayList;
 
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
 
import android.content.Context;
import android.opengl.GLSurfaceView;
import android.opengl.GLSurfaceView.Renderer;
import android.view.MotionEvent;
 
public class RenderGlobal extends GLSurfaceView implements Renderer 
{
    public ArrayList<EntityPoint> pointsList;
    public float screenSizeX, screenSizeY;
    
    public RenderGlobal(Context context) 
    {
        super(context);     
        setRenderer(this); 
        pointsList = new ArrayList<EntityPoint>();
        screenSizeX = 0f;
        screenSizeY = 0f;
    }
    
    @Override
    public boolean onTouchEvent(MotionEvent e) 
    {
       
        if (MotionEvent.ACTION_DOWN == e.getAction())
        {
            pointsList.add(new EntityPoint(getTouchX(e),getTouchY(e)));
        }
        return true;
    }
 
    @Override
    public void onDrawFrame(GL10 gl) 
    {
        gl.glClear(GL10.GL_COLOR_BUFFER_BIT);    
        gl.glMatrixMode(GL10.GL_MODELVIEW);
        gl.glLoadIdentity();        
        gl.glTranslatef(0f, 0f, -3f);
        
        for (int i = 0; i < pointsList.size(); i++)
        {
            pointsList.get(i).render(gl);
        }
    }
 
    @Override
    public void onSurfaceChanged(GL10 gl, int width, int height) 
    {
        gl.glViewport(0, 0, width, height);
        screenSizeX = width;
        screenSizeY = height;
    }
 
    @Override
    public void onSurfaceCreated(GL10 gl, EGLConfig config) 
    {
        gl.glClearColor(0f, 0.5f, 0f, 1f);  
        gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
    }
    
    public float getTouchX(MotionEvent e)
    {
        return (e.getX()/(float)screenSizeX)*2f-1f;
    }
    
    public float getTouchY(MotionEvent e)
    {
        return -((e.getY()/(float)screenSizeY)*2f-1f);
    }
}


EntityPoint - класс отрисовывающий точку.
Кликните здесь для просмотра всего текста

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
package ua.nikkilla.nje4a;
 
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
 
import javax.microedition.khronos.opengles.GL10;
 
public class EntityPoint 
{
    public FloatBuffer pointBuffer;
    
    public EntityPoint(float x, float y)
    {
          ByteBuffer bb = ByteBuffer.allocateDirect(8);
          bb.order(ByteOrder.nativeOrder());
          pointBuffer = bb.asFloatBuffer();
          pointBuffer.put(x);
          pointBuffer.put(y);
          pointBuffer.position(0);
    }
    
    public void render(GL10 gl)
    {   
        gl.glColor4f(1f, 0f, 0f, 1f);
        gl.glVertexPointer(2, GL10.GL_FLOAT, 0, pointBuffer);
        gl.glPointSize(4f);
        gl.glDrawArrays(GL10.GL_POINTS, 0, 1);
    }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru