Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Управление 2d вертолетиком вверх-вниз

Здравствуйте.
Пытаюсь реализовать управление 2d вертолетиком вверх-вниз. Использую Character Controller. Ничего не получается, персонаж падает видимо под воздействием гравитации.
Подскажите, пожалуйста, как это реализовать. По-возможности помогите скриптом, а то я пока новичок в программировании.
Всем заранее спасибо!
Ответ:
Сообщение от jurassic80
в Unity 3d
товарищ, вот с этого и надо было начинать
Сообщение от jurassic80
А как его применить в Unity 3d?
х3)
Вопрос: Поднятие экрана вверх при обновлении данных

Здравствуйте, 
делаю приложение под андроид, которое через bluetooth модуль считывает определенные данные от микроконтроллера, через определенные промежутки времени, обновляя эти данные
на экране андроид устройства.

Эти данные визуализируется с помощью TextView, ProgressBar, RadioButton и т.п. Данных много
в экран они не помещаются, поэтому в xml файле я их располагаю внутри ScrollView .

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

Можно ли как то запретить андроиду поднимать экран вверх и оставлять экран в той точке
в которой он был до обновления данных ?
Ответ:
Здравствуйте, 
делаю приложение под андроид, которое через bluetooth модуль считывает определенные данные от микроконтроллера, через определенные промежутки времени, обновляя эти данные
на экране андроид устройства.

Эти данные визуализируется с помощью TextView, ProgressBar, RadioButton и т.п. Данных много
в экран они не помещаются, поэтому в xml файле я их располагаю внутри ScrollView .

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

Можно ли как то запретить андроиду поднимать экран вверх и оставлять экран в той точке
в которой он был до обновления данных ?
Вопрос: Как сделать что-бы при сдвиге WebView вверх,он залезал под TextView

Помогите,мне надо что-бы при сдвиге WebView вверх,он залезал под TextView а не на него,это возможно сделать не меняя местами элементы?
Код main:
Код XML
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
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="top|center"
    android:orientation="vertical">
 
    <TextView
        android:layout_height="50dp"
        android:layout_width="match_parent"
        android:background="@drawable/log"/>
 
    <Button
        android:layout_height="50dp"
        android:layout_width="50dp"
        android:background="@drawable/home"
        android:alpha="0.7"
        android:onClick="home"
        android:layout_gravity="left"
        android:translationY="-50dp"/>
 
    <TextView
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:layout_gravity="right"
        android:id="@+id/sbpl"
        android:gravity="center"
        android:textColor="#FF0F00"
        android:translationY="-65dp"
        android:textSize="10sp"/>
 
    <ImageButton
        android:layout_height="wrap_content"
        style="?android:attr/buttonBarButtonStyle"
        android:layout_width="40dp"
        android:src="@android:drawable/ic_menu_close_clear_cancel"
        android:layout_gravity="right"
        android:onClick="back"
        android:translationY="-112dp"/>
 
    <WebView
        android:id="@+id/wv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="-115dp">
 
    </WebView>
 
</LinearLayout>
Ответ: bako-95, я уже сам разобрался) через relativelayout ничего не толкается,а я о нём ничего не знал)
Вопрос: Как всё сместить вверх, чтобы EditText оказался вверху клавиатуры

Работаю на Android Studio.
Как всё сместить вверх, чтобы EditText оказался вверху клавиатуры и было видно, что пользователь вводит?
У меня содержимое не скролится, простой фрагмент на активити.
Ответ: zuxa-zuxa, ну мало ли, кто ещё чего предложит. А так там еще есть "adjustResize" и "adjustUnspecified".
Вопрос: Как лучше всего организовать движение textView вниз?

Среда разработки - Android Studio.
Как лучше всего организовать движение textView вниз?
Через отдельный поток вызывать хэндлер и там прописать еже-миллисекундное изменение textView.setTop?
Или есть методы попроще?
Ответ: А какой из предложенных вариантов вы бы порекомендовали бы?
Остановил свой выбор на методе - textView5.animate().и.т.д.
Вопрос: Перевод кода с явы на андроид

Я делаю игру под андроид,и мне надо,чтобы пакмен двигался вверх,вниз,вправо влево,при наведении на него пальцем.
Какой аналогичный код можно сделать под андроид?
см.код ниже.В интернете про это особо не написано
Код Java(TM) 2 Platform Standard Edition 5.0
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
  class TAdapter extends KeyAdapter {
 
        @Override
        public void keyPressed(KeyEvent e) {
 
            int key = e.getKeyCode();
 
            if (ingame) {
                if (key == KeyEvent.VK_LEFT) {
                    reqdx = -1;
                    reqdy = 0;
                } else if (key == KeyEvent.VK_RIGHT) {
                    reqdx = 1;
                    reqdy = 0;
                } else if (key == KeyEvent.VK_UP) {
                    reqdx = 0;
                    reqdy = -1;
                } else if (key == KeyEvent.VK_DOWN) {
                    reqdx = 0;
                    reqdy = 1;
                } else if (key == KeyEvent.VK_ESCAPE && timer.isRunning()) {
                    ingame = false;
                } else if (key == KeyEvent.VK_PAUSE) {
                    if (timer.isRunning()) {
                        timer.stop();
                    } else {
                        timer.start();
                    }
                }
            } else {
                if (key == 's' || key == 'S') {
                    ingame = true;
                    initGame();
                }
            }
        }
Код Java(TM) 2 Platform Standard Edition 5.0
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
  @Override
        public void keyReleased(KeyEvent e) {
 
            int key = e.getKeyCode();
 
            if (key == Event.LEFT || key == Event.RIGHT
                    || key == Event.UP || key == Event.DOWN) {
                reqdx = 0;
                reqdy = 0;
            }
        }
    }
 
    @Override
    public void actionPerformed(ActionEvent e) {
 
        repaint();
    }
}
 @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
 
        doDrawing(g);
    }
   private void doDrawing(Graphics g) {
 
        Graphics2D g2d = (Graphics2D) g;
 
        g2d.setColor(Color.black);
        g2d.fillRect(0, 0, d.width, d.height);
 
        drawMaze(g2d);
        drawScore(g2d);
        doAnim();
 
        if (ingame) {
            playGame(g2d);
        } else {
            showIntroScreen(g2d);
        }
 
        g2d.drawImage(ii, 5, 5, this);
        Toolkit.getDefaultToolkit().sync();
        g2d.dispose();
    }
Добавлено через 2 минуты
частично код уже написан,только затрудняюсь с этими классами и оверайдами
Ответ:
Сообщение от EduardSakhnovic
частично код уже написан,только затрудняюсь с этими классами и оверайдами
Override & classes такие же как и в джава обычной для разработчика

А так переопределите MotionEvent в активити или где Вам нужно... Так Вы сможете распознать необходимые Вам жесты или просто касания. На эту тему полно статей в интернете
Вопрос: Как сделать скроллинг FrameLayout?

как сделать скроллинг FrameLayout?
Суть в том, что содержимое не помещается на экране по вертикали.
В FrameLayout вставлено около 20 строк (при помощи TableRow).
Как-то надо установить скроллинг вверх-вниз. Как - не знаю.
Ответ: спасибо.
я уже понял, что надо в ту сторону смотреть.
для начала читаю
Вопрос: CardboardView - проблема с появлением CustomMenu

Всем привет. Может кто сталкивался или знает что-то по такому вопросу. Нарыл код для cardboardView в инете. По дефолту в примере просто вывод текста по среди экрана.
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
private class CardboardOverlayEyeView extends ViewGroup {
        private final ImageView imageView;
        private final TextView textView;
        private float offset;
        private LinearLayout menu;
 
        public CardboardOverlayEyeView(Context context, AttributeSet attrs) {
            super(context, attrs);
 
            //try to add menu
            menu = new LinearLayout(context, attrs);
            menu.setGravity(Gravity.CENTER);
 
            View mView;
            LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            mView = inflater.inflate(R.layout.menu_layout, null, true);
 
            menu.addView(mView);
 
            imageView = new ImageView(context, attrs);
            imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
            imageView.setAdjustViewBounds(true);  // Preserve aspect ratio.
            addView(imageView);
 
            textView = new TextView(context, attrs);
            textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 14.0f);
            textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
            textView.setGravity(Gravity.CENTER);
            textView.setShadowLayer(3.0f, 0.0f, 0.0f, Color.DKGRAY);
            addView(textView);
        }
 
        public void setColor(int color) {
            imageView.setColorFilter(color);
            textView.setTextColor(color);
        }
 
        public void setText(String text) {
            textView.setText(text);
        }
 
        public void setTextViewAlpha(float alpha) {
            textView.setAlpha(alpha);
        }
 
        public void setOffset(float offset) {
            this.offset = offset;
        }
 
        @Override
        protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
           //bla bla view positions.
        }
    }
}
Вообщем хочется мне добавить меню, что бы можна было управлять с bluetooth джойстика. Менюшку добавил. Переписал extends ViewGroup на extends RelativeLayout . Все отлично . Меню появляется на двух "глазиках" НО когда управляю джойстиком вверх вниз то только на левом меню это видно. На правом не показывает фокус (я так предполагал что все что происходит слева в глазике , должно быть и справа на глазике). + используя влево вправо на джойстике - можна перепрыгивать между менюшками. Это тоже бок( Не могу понять что можна тут сделать. Может кто сталкивался с подобным? На фотке примерно показал как выглядит.
Ответ: C горем пополам получилось сделать. Не идеально , но результат тот, который нужен. Для удобства был создан массив баттонов. Каждому элементу присвоена кнопка с меню.
Java
1
2
3
4
5
6
7
8
9
10
11
public void setFocusOnBtns() {
        for(int i=0; i<mLeftView.btns.length; i++) {
            if(mLeftView.btns[i].isFocused() || mRightView.btns[i].isFocused()) {
                mLeftView.btns[i].setBackgroundResource(R.drawable.button_pressed);
                mRightView.btns[i].setBackgroundResource(R.drawable.button_pressed);
            }else {
                mLeftView.btns[i].setBackgroundResource(R.drawable.button);
                mRightView.btns[i].setBackgroundResource(R.drawable.button);
            }
        }
    }
Проверяем какая кнопка сейчас под фокусом и ставим ей другой бекграунд и копируем операцию на соседнее меню.
мало ли, может кому то пригодится.
функция вызывается когда происходит нажатие UP/DOWN на геймпаде.
Вопрос: Показ невидимой части картинки анимацией

Я пишу программу в горизонтальной ориентации.

У меня есть картинка размером 512х652 пикселя.

Я хочу, чтобы картинка, не меняя пропорции сторон, растянулась по ширине экрана(длинная часть).

После этого картинка в таком положении должна проплыть по экрану снизу вверх, тем самым показав невидимые области по высоте.

Как это сделать не знаю даже примерно, потому кода нет.

Прошу помощи.
Ответ: prouraist, если изображение вставить в ImageView, то его обрежет и двигать будет нечего. Можно сделать при помощи рисования в SurfaceView. взял пример кода и переписал чутка. Подходит для любого изображения. показывает верхнюю часть картинки растягивая по ширине без изменения пропорций. при нажатии на экран двигается вверх до нижнего края. В манифесте для этого Activity ставил android:screenOrientation="landscape". Получилось много кода:

Код Java(TM) 2 Platform Standard Edition 5.0
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
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
 
 
public class MainActivity extends Activity implements OnClickListener,
        SurfaceHolder.Callback {
 
    Bitmap bitmap;
    SurfaceView surfaceView;
    DrawingThread thread;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        //загружаем изображение
        bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.sun);
 
        surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
        surfaceView.getHolder().addCallback(this);
        surfaceView.setOnClickListener(this);
    }
 
    @Override
    public void surfaceCreated(SurfaceHolder holder) {
        thread = new DrawingThread(holder, bitmap);
        thread.start();
    }
 
    @Override
    public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {}
 
    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {}
 
    @Override
    public void onClick(View v) {
        thread.startMotion();
    }
 
    @Override
    public void onBackPressed() {
        thread.quit();
        thread = null;
        finish();
    }
 
    private static class DrawingThread extends HandlerThread implements Handler.Callback {
 
        private static final int SHOW = 1;
        private static final int MOVE = 2;
        private SurfaceHolder holder;
        private Handler handler;
        private Bitmap bitmap;
        private int deltaY;
        private int bitmapY = 0;
 
        public DrawingThread(SurfaceHolder holder, Bitmap bitmap) {
            super("DrawingThread");
            this.holder = holder;
            this.bitmap = bitmap;
        }
 
        @Override
        protected void onLooperPrepared() {
            handler = new Handler(getLooper(), this);
            handler.sendEmptyMessage(SHOW);
        }
 
        public void startMotion() {
            handler.sendEmptyMessage(MOVE);
        }
 
        @Override
        public boolean quit() {
            handler.removeCallbacksAndMessages(null);
            return super.quit();
        }
 
        @Override
        public boolean handleMessage(Message msg) {
            Canvas canvas;
            switch (msg.what) {
                case SHOW:
                    bitmapY = 0;
                    canvas = holder.lockCanvas();
 
                    //подгоняем изображение под размер экрана
                    float scaleCoefficient = (float)canvas.getWidth() / (float)bitmap.getWidth();
                    int dstWidth = canvas.getWidth();
                    int dstHeight = (int) (bitmap.getHeight() * scaleCoefficient);
                    bitmap = Bitmap.createScaledBitmap(bitmap, dstWidth, dstHeight, false);
 
                    //определяем на какое расстояние будет двигаться изображение
                    this.deltaY = canvas.getHeight() - bitmap.getHeight();
 
                    canvas.drawBitmap(bitmap, 0f, 0f, null);
                    holder.unlockCanvasAndPost(canvas);
                    return true;
                case MOVE:
                    canvas = holder.lockCanvas();
                    canvas.drawBitmap(bitmap, 0f, bitmapY, null);
                    holder.unlockCanvasAndPost(canvas);
                    bitmapY -=2;
                    if(bitmapY < deltaY) {
                        handler.sendEmptyMessage(SHOW);
                        return true;
                    }
            }
            handler.sendEmptyMessage(MOVE);
            return true;
        }
    }
}
Вопрос: Первое приложение - нужно ваше мнение!

Добрый день. Создали с мужем уникальное и действительно хорошее приложение для похудения. Система похудения реально работает (до этого был сайт с этой же системой, но более "бедным" функционалом). Проблема в том, что конкуренция очень велика в этой области и подняться в топ, не вкладывая дополнительно денег практически не реально. А находясь на 170 месте, по запросу похудение, найти нас просто не реально. Закачки есть (люди идут с сайта на котором как раз эта система), люди пользуются, но что бы подняться на вверх нужны какие-либо координальные действия.  Пожалуйста, поделитесь секретами бесплатной раскрутки мобильных приложений. И второй вопрос. Что вам кажется не удобным в приложении? Все ли понятно? Удобная навигация или нет? Помогите плиз. Я всю душу в этот проект вложила, 2 года все продумывала, как это все сделать что бы людям было удобно и хорошо пользоваться.  А главное, что люди на системе реально худеют без вреда здоровью  и в форме игры. 
(IMG:)(IMG:)(IMG:)(IMG:)(IMG:)(IMG:) Заранее огромное спасибо за ответы, даже если это будет критика. 

Ссылка на само приложение: 

Это сообщение отредактировал(а) kisa888 - 15.12.2015, 01:35
Ответ:
Добрый день. Создали с мужем уникальное и действительно хорошее приложение для похудения. Система похудения реально работает (до этого был сайт с этой же системой, но более "бедным" функционалом). Проблема в том, что конкуренция очень велика в этой области и подняться в топ, не вкладывая дополнительно денег практически не реально. А находясь на 170 месте, по запросу похудение, найти нас просто не реально. Закачки есть (люди идут с сайта на котором как раз эта система), люди пользуются, но что бы подняться на вверх нужны какие-либо координальные действия.  Пожалуйста, поделитесь секретами бесплатной раскрутки мобильных приложений. И второй вопрос. Что вам кажется не удобным в приложении? Все ли понятно? Удобная навигация или нет? Помогите плиз. Я всю душу в этот проект вложила, 2 года все продумывала, как это все сделать что бы людям было удобно и хорошо пользоваться.  А главное, что люди на системе реально худеют без вреда здоровью  и в форме игры. 
(IMG:)(IMG:)(IMG:)(IMG:)(IMG:)(IMG:) Заранее огромное спасибо за ответы, даже если это будет критика. 

Ссылка на само приложение: 

Это сообщение отредактировал(а) kisa888 - 15.12.2015, 01:35