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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Получить путь к карте памяти (SD card) http://www.cyberforum.ru/android-dev/thread1362686.html
Не педелитесь методом, который возвращает путь к карте памяти, если она есть? Нащел вот такой метод в интернете, но на некоторых устройствах работает некорректо. Например на galaxy s3 все ок, а вот...
Программирование 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/ посвящён подобному рейтингу. В списке рейтинга...
Программирование Android Статистика Google Play Service и баг Google Analytics В процессе написания простейшего приложения с использованием Google Analytics v4 нашел забавный баг. Его последствия, методы лечения, и желание увидеть статистику Play Service ниже. Как я понял... подробнее

Показать сообщение отдельно
SP236
0 / 0 / 0
Регистрация: 26.01.2015
Сообщений: 3
27.01.2015, 17:40  [ТС]
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
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru