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

Canvas поверх GridLayout - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Получить путь к карте памяти (SD card) http://www.cyberforum.ru/android-dev/thread1362686.html
Не педелитесь методом, который возвращает путь к карте памяти, если она есть? Нащел вот такой метод в интернете, но на некоторых устройствах работает некорректо. Например на galaxy s3 все ок, а вот на s4 не находит. public static HashSet<String> getExternalMounts() { final HashSet<String> out = new HashSet<String>(); String reg =...
Программирование Android Как частично заполнить цветом кнопку Всем привет.Подскажите как частично заполнить цветом кнопку как на картинке, с возможностью регулирования заполненности. Спасибо. http://www.cyberforum.ru/android-dev/thread1362671.html
Если смысл использовать login activity в Android Studio? Или писать самому? Программирование Android
Есть ли исходники логин-пароль окна?
Как спрятать рекламу admob под экранную клавиатуру? Программирование Android
Ситуация такова, что в приложении есть поля ввода. Баннер admob размещен внизу активити. когда ставлю фокус в поле ввода появляется клавиатура и баннер подымается над ней. Что я не пробовал какие компановки и настройки лайотов ничего не помогает спрятать баннер. Есть конечно вариант скрывать его видимость, но как тогда отловить появление клавиатуры? Просто мне кажется что можно получить бан от...
Программирование Android Степень популярности разработчиков приложений для iOS в наше время http://www.cyberforum.ru/android-dev/thread1362637.html
Лучшим порядковым показателем популярности и значимости разработчиков мобильных приложений является его рейтинг. Сайт http://www.ratingruneta.ru/apps/ посвящён подобному рейтингу. В списке рейтинга разработчики мобильных приложений имеют 100 позиций. Уже лет 7 в России развивается малый и средний бизнес. Рывок вперёд в направлении разных электронных программ заставляет задуматься: А что дальше?...
Программирование Android Статистика Google Play Service и баг Google Analytics В процессе написания простейшего приложения с использованием Google Analytics v4 нашел забавный баг. Его последствия, методы лечения, и желание увидеть статистику Play Service ниже. Как я понял сама аналитика интегрирована в play services. Без задней мысли захожу в документацию и указываю в gradle последнюю версию (допустим 6.5.87). Собранный пример нормально функционирует, отправляет... подробнее

Показать сообщение отдельно
SP236
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 3
27.01.2015, 17:40  [ТС]     Canvas поверх GridLayout
Gabberr, спасибо за мысль, всё получилось!
Только я вместо
Цитата Сообщение от Gabberr Посмотреть сообщение
прозрачный relativelayout со своей вьюхой
сразу использовал View. А т.к. в предыдущей реализации есть проблемы с перерисовкой вьюхи, то я использовал переопределённый onDraw() и метод invalidate() (заодно разобрался, что это такое и для чего нужно).
Вот результат.
java (цифры подобраны для hdpi-плотности):
Кликните здесь для просмотра всего текста
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
public class MainActivity extends Activity {
    private FrameLayout frmLayMain;
    private View drawView;
    private boolean isLeftDiag = true;
    
    @Override protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        frmLayMain = (FrameLayout)findViewById(R.id.frmLayMain);    
        drawView = new DrawView(this);
        
        ViewGroup.LayoutParams layPar = new ViewGroup.LayoutParams((int)(120*1.5), (int)(120*1.5));
        FrameLayout.LayoutParams frmLayPar = new FrameLayout.LayoutParams(layPar);
        frmLayPar.gravity = Gravity.CENTER;
        
        frmLayMain.addView(drawView, frmLayPar);
    }
    
    class DrawView extends View {
        Paint p;
 
        public DrawView(Context context) {
            super(context);
            p = new Paint();
        }
 
        @Override protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            p.setColor(Color.BLUE);
            p.setStrokeWidth(15);
            
            if(!isLeftDiag) {           
                canvas.drawLine(0, 180, 180, 0, p);
            } else {
                canvas.drawLine(0, 0, 180, 180, p);
            }
        }
    }
    
    public void onClickDraw(View v) {
        drawView.invalidate();
        if(!isLeftDiag) {           
            //drawView.setVisibility(View.VISIBLE);
            isLeftDiag = true;
        } else {
            //drawView.setVisibility(View.INVISIBLE);
            isLeftDiag = false;
        }
    }
}

xml:
Кликните здесь для просмотра всего текста
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
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frmLayMain"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    
    <GridLayout
        android:id="@+id/gridLay1"
        android:onClick="onClickDraw"
        android:columnCount="2"
        android:background="#FF59BEEC"
        android:orientation="horizontal"
        android:layout_gravity="center"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >
        <ImageView
            android:id="@+id/imageView0"
            android:layout_marginRight="20dp"
            android:layout_marginBottom="20dp"
            android:background="#FFE97F"
            android:layout_width="50dp"
            android:layout_height="50dp" />
        <ImageView
            android:id="@+id/imageView1"
            android:background="#FFE97F"
            android:layout_width="50dp"
            android:layout_height="50dp" />
        <ImageView
            android:id="@+id/imageView2"
            android:background="#FFE97F"
            android:layout_width="50dp"
            android:layout_height="50dp" />
        <ImageView
            android:id="@+id/imageView3"
            android:background="#FFE97F"
            android:layout_width="50dp"
            android:layout_height="50dp" />
    </GridLayout>
 
</FrameLayout>

Скриншот:
Кликните здесь для просмотра всего текста
Canvas поверх GridLayout
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru