Вниз  Android-программирование (1-ые посты)
- 2.03.2014 / 01:47
usb_device
  Пользователь

usb_device 
Сейчас: Offline
Разобрался, я указывал альфа канал 0, а нужно было значение на порядок выше, так как прозрачность 0 - абсолютная, 255 - нету.

Изменено usb_device (2.03 / 01:54) (всего 1 раз)
- 2.03.2014 / 09:17
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Скажите как сделать свой интерфейс с прослушкой какого-нибудь события на андроид?

Изменено samodelkin (2.03 / 09:18) (всего 1 раз)
- 2.03.2014 / 09:22
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Все разобрался, спасибо.
- 2.03.2014 / 10:03
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
Почему вот в этом макете, в котором находится разметка с несколькими элементами и отдельный текст высвечивается ошибка Error in an XML file: aborting build.:

<?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:orientation="vertical"
     android:background="@drawable/bg_menu"
     android:id="@+id/menu_layout">
     <TextView
         android:layout_width="match_parent"
     android:layout_height="90dp"
     android:layout_gravity="center"
     android:gravity="center"
     android:text="Простой симулятор самолета"
     android:textSize="26dp"
         />
     <Button
         android:id="@+id/menu_button1"
         android:layout_width="250dp"
     android:layout_height="60dp"
     android:layout_gravity="center"
     android:text="Игра"
     android:textSize="25dp"
  android:alpha="1"
         />
     <Button
         android:id="@+id/menu_button2"
         android:layout_width="250dp"
     android:layout_height="60dp"
     android:layout_gravity="center"
     android:text="Помощь"
     android:textSize="25dp"
         android:alpha="1"
         />
    
    
</LinearLayout>

<TextView
     android:id="@+id/menu_help"
         android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_gravity="center"
     android:gravity="center"
     android:text="Вы-пилот самолета, поднимитесь с одного аэропорта до другого. Разработка: Сергей Самоделкин(http://samodroid.webnode.ru),2014 год."
     android:textSize="25dp"
         />

Изменено samodelkin (2.03 / 10:04) (всего 1 раз)
- 2.03.2014 / 10:16
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Потому что последний TextView у тебя находится вне контейнера.
__________________
 let live
- 2.03.2014 / 16:53
usb_device
  Пользователь

usb_device 
Сейчас: Offline
Как можно принудительно обновлять экран на котором отбражаються различные layuot элементы. Например, в этом коде у меня полностью выполняется цыкл в методе threadExample, и только потом на экране отрисовывается изменения TextView, а нужно что бы после каждого изменения это сразу же отображалось на экране.
Открыть спойлер


Изменено usb_device (2.03 / 16:54) (всего 1 раз)
- 2.03.2014 / 17:28
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
usb_device, начнём, пожалуй, с того, что в Android нельзя из других потоков работать с элементами пользовательского интерфейса.
Иными словами, если метод threadExample() действительно поместить в другой поток, то на строке tvInfo.append произойдёт исключение.
На данный момент всё у тебя сейчас выполняется в одном потоке, поэтому работает не так, как надо.

На помощь приходит класс Handler. Это система общения между потоками.
  1. private static handler = new Handler() {
  2.     @Override
  3.     public void handleMessage(Message msg) {
  4.         tvInfo.append("\n"+msg.what);
  5.     }
  6. };
  7. TextView tvInfo;
  8.  
  9. @Override
  10. protected void onCreate(Bundle savedInstanceState) {
  11.     super.onCreate(savedInstanceState);
  12.     setContentView(R.layout.activity_main);
  13.     tvInfo = (TextView) findViewById(R.id.textView);
  14.     new Thread(new Runnable() {
  15.         public void run() { threadExample(); }
  16.     }).start();
  17. }
  18.  
  19. public void threadExample(){
  20.     for(int i=0;i<5;i++) {
  21.         try {
  22.             Thread.sleep(2000);
  23.         } catch (InterruptedException e) { }
  24.         handler.sendEmptyMessage(i);
  25.     }
  26. }
Подробнее здесь
__________________
 let live

Изменено aNNiMON (2.03 / 17:31) (всего 2 раза)
- 2.03.2014 / 17:35
usb_device
  Пользователь

usb_device 
Сейчас: Offline
aNNiMON,спасибо, о хендлере как раз собирался читать. Но странно почему нету возможности как то просто обновлять содержимое layout или самого TextView. Какой нибудь метод вроде tvInfo.refresh() где tvInfo TextView
- 2.03.2014 / 17:50
samodelkin
  Пользователь

samodelkin 
Сейчас: Offline
usb_device, есть способ с помощью runOnUiThread()
сейчас напишу пример.
- 2.03.2014 / 17:51
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
usb_device, они и так прекрасно обновляются. Просто в твоём примере этого не получится ну никак.
__________________
 let live
Наверх  Всего сообщений: 4453
Фильтровать сообщения
Поиск по теме
Файлы топика (184)