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

Размер view по время выполнения - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android GPS + растровая карта http://www.cyberforum.ru/android-dev/thread941318.html
Добрый день Как привязать gps координаты к растровой карте? Карту сделал банально скриншотом из карт Гугл. Я так думаю надо сделать минимум 2 контрольные точки, чтобы рассчитать масштаб. Но как...
Программирование Android Деление на группы ListView android Подскажите как поделить ListView на группы если используется SherlockFragment? Хочу разделить данные по датам. вот такой вот код package com.example.aucaintouch; import... http://www.cyberforum.ru/android-dev/thread941277.html
Программирование Android Адаптер для GridView
Доброго времени. пытаюсь реализовать адаптер для GridView но почемуто не совсем получается. Суть вот в чем. я создал свой компонент: код View: <?xml version="1.0" encoding="utf-8"?> <LinearLayout...
Программирование Android ListView с мультивыбором
Здравствуйте форумчане) такой вопрос. есть листвиев с моим адаптером через hashmap хочу этот листвиев использовать как мультивыбор но только не через стандартный ассет а с помощью этого же...
Программирование Android Непонятный баг в ListView http://www.cyberforum.ru/android-dev/thread941145.html
В общем, суть такова: Имеется список контактов в ListView. Каждый пункт содержит аватарку, имя и телефон. Адаптер ListView: class ContactAdapter extends BaseAdapter{
Программирование Android Обработка нажатия каждого элемента List View Доброго времени суток! Нужна помощь в реализации нажатия на элемент лист вью. Необходимо присвоить каждому в списке элементу переход на разные активити. Я попробовал реализовать следующим... подробнее

Показать сообщение отдельно
strevg
1 / 1 / 0
Регистрация: 24.06.2013
Сообщений: 57

Размер view по время выполнения - Программирование Android

21.08.2013, 16:28. Просмотров 1377. Ответов 6
Метки (Все метки)

Здрасте
Создаю класс наследованный от view. В нем рисуют на canvas. Только перед рисованием мне нужно узнать размер view или canvas. Как это сделать?
спс
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
 
public class MainActivity extends Activity{
    GrafView Graf;
    class point{
        public float x,y;
        public point()
        {
            x=y=0;
        }
    }
    
    class GrafView extends View {
        Paint paint;
        int count;
        point dxy = new point();
        point[] arrays_points;
        protected float start_point, end_point,dh;
        private point[] pnt_touch; // массив координат касания
        protected point center = new point();
        public GrafView(Context context) {
            super(context);
            paint = new Paint();
            count=100;
            arrays_points = new point[count];
            pnt_touch = new point[2];
            dxy.x=dxy.y=10;
            paint.setColor(Color.GREEN);
            paint.setStrokeWidth(3);
            start_point=-10; end_point=10;
            Log.d("size", ""+center.x+"  "+center.y);
        }
        
        float func(float i)
        {
            return 4*i+5;
        }
        
        protected void calc_point(Canvas canvas)
        {
            int i=0;
            dh=(end_point-start_point)/count;
            for (float j=start_point;j<end_point-dh;j+=dh,i++)
            {
                point pnt=new point();
                pnt.x=dxy.x*j;
                pnt.y=dxy.y*func(j);    
                arrays_points[i]=pnt;
                //Log.d("my", ""+arrays_points[i].x+"  "+arrays_points[i].y+"   "+i);
            }
        }
        private void onDrawAxis(Canvas canvas)
        {
            Paint line = new Paint();
            line.setColor(Color.BLACK);
            line.setStrokeWidth(2);
            canvas.drawLine(center.x, 0, center.x, canvas.getHeight(), line);
            canvas.drawLine(0, center.y, canvas.getWidth(), center.y, line);
        }
        protected void onDrawPoints(Canvas canvas)
        {
            for (int i=0;i<count-1;i++)
            {
                canvas.drawLine((arrays_points[i].x+center.x), (-arrays_points[i].y+center.y),
                        (arrays_points[i+1].x+center.x), (-arrays_points[i+1].y+center.y), paint);
            }
        }
        
        protected void onDraw(Canvas canvas) {
            canvas.drawRGB(255, 255, 255);
            calc_point(canvas);
            onDrawAxis(canvas);
            onDrawPoints(canvas);
            }
        }
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            Graf = new GrafView(this);
            setContentView(Graf);
        }
P.S
В коде у меня это надо для определения центра этой вьюшки или канвы(center.x и center.y)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru