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

Как связать несколько ImageView в ScrollView или WebView? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Угадай фильм по кадру http://www.cyberforum.ru/android-dev/thread1650137.html
Доброго здравия, ребятки! Есть идея приложения - угадай фильм. Оффлайн. С бд в апк. Попробовал реализацию через парсинг xml, через SQLite и через массивы, но не смог сделать хоть сколько нибудь близко к заданию ибо недели две как пытаюсь программировать) Понимаю, что знаний не хватает, но хоть обучение и в процессе - приложуху хочется сделать уже сейчас. Саму логику примерно понимаю так: ...
Программирование Android Разработка под TV + управление пультом Добрый день! Есть задача приложения для tv и условие - управление этим приложением через пульт от телевизора. Подскажите, пожалуйста, в каком направлении копать. Может кто знает, или у кого-то есть, примеры подобных приложений, желательно с открытым кодом, чтобы использовать как пример для понимания работы данной схемы. Спасибо! http://www.cyberforum.ru/android-dev/thread1650080.html
SwypeRefreshLayout не останавливает анимацию во Fragment Программирование Android
Есть ViewPager, в нем фрагменты. Во фрагменте SwipeRefreshLayout с ListView Внутри класса фрагмента в onCreateView задаю swipeLayout = (SwipeRefreshLayout) view.findViewById(R.id.SwipeRefreshLayout); swipeLayout.setOnRefreshListener(SwipeRefreshListener); private SwipeRefreshLayout.OnRefreshListener SwipeRefreshListener = new SwipeRefreshLayout.OnRefreshListener(){ @Override...
Открытие в галерее папки с фото Программирование Android
Собсно сабж :) Открыть просто файл не проблема, все ок, а с папкой с файлами как быть ? В интернетах вроде способы находятся, но по какой-то неведомой причине у меня оно не работает, в лучшем случае просто пустое окно галереи открывается и все. Находятся в основном такие вот вещи: http://stackoverflow.com/questions/9550557/android-action-view-multiple-images Или такие:...
Программирование Android Не получается указать путь для андроид (LibGDX) (FileInputStream ObjectInputStream) http://www.cyberforum.ru/android-dev/thread1649761.html
Всем привет! Помогите прочитать файл потока(ObjectInputStream) "Локально-Gdx.files.getLocalStoragePath()" или "Внутренне-Gdx.files.internal", если можно по подробней. Три дня Гуглю не могу ничего найти, а если нахожу то эти примеры не работают под андроид. try{ FileHandle fl = Gdx.files.internal("21"); fis = new FileInputStream(fl.file()); in = new ObjectInputStream(fis); }...
Программирование Android Ограничить число подсказок AutoCompleteTextView Как сделать так чтобы когда пользователь вводит текст в поле AutoCompleteTextView, ему отображалось только 4 подсказки а остальные можно было бы увидеть уже при помощи скрола?? Как так ограничить ?? подробнее

Показать сообщение отдельно
f1n2009
0 / 0 / 0
Регистрация: 28.01.2016
Сообщений: 8

Как связать несколько ImageView в ScrollView или WebView? - Программирование Android

28.01.2016, 23:21. Просмотров 338. Ответов 1
Метки (Все метки)

Здравствуйте, уважаемые форумчане! Только начинаю осваивать Java и Android поэтому прошу не кидаться в меня камнями если что-то опишу не так )
Нужно реализовать, как мне кажется, довольно простую задачу, однако решения, которое меня бы устраивало я не могу найти уже несколько дней.
Суть такова. Есть 4 картинки которые должны скролиться вместе. Основная картинка (в нижнем правом углу) должна скролиться во всех направлениях (x, y и по диагонали). Картинка сверху от нее должна скролиться вместе с ней по горизонтали. Картинка слева от нее - вместе с ней по вертикали. Ну и картинка в левом верхнем - просто картинка, которая скролиться не должна.
Ниже приведу 2 варианта решения которые я рассматривал, но не смог их реализовать так, что бы меня это устраивало.
1 вариант
Разместить ImageView в ScrollView и связать их перемещение в setOnTouchListener:
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
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
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    //просто картинка
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView8"
        android:src="@drawable/corner8509"
        android:contentDescription="@string/ugolokravn1" />
 
    <ScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/scrollVertical2"
        android:layout_below="@+id/imageView8"
        android:scrollbars="none"
        android:fadingEdge="none">
 
        //картинка слева
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView7"
            android:src="@drawable/left8509"
            android:contentDescription="@string/ugolokravn2" />
    </ScrollView>
 
    <HorizontalScrollView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/scrollHorizontal2"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/imageView8"
        android:layout_toEndOf="@+id/imageView8"
        android:scrollbars="none"
        android:fadingEdge="none">
 
        //картинка сверху
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/imageView6"
            android:src="@drawable/top8509"
            android:contentDescription="@string/ugolokravn3" />
    </HorizontalScrollView>
 
    <com.pavel.sortament.VScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:id = "@+id/scrollVertical1"
        android:layout_below="@+id/scrollHorizontal2"
        android:layout_toRightOf="@+id/scrollVertical2"
        android:layout_toEndOf="@+id/scrollVertical2"
        android:scrollbars="none"
        android:fadingEdge="none">
 
    <HorizontalScrollView
        android:id = "@+id/scrollHorizontal1"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:scrollbars="none"
        android:fadingEdge="none">
 
        //основная картинка
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/image1"
            android:src="@drawable/content8509"
            android:contentDescription="@string/ugolokravn4" />
    </HorizontalScrollView>
        
</com.pavel.sortament.VScrollView>
 
</RelativeLayout>
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
public class Gost8509 extends Activity implements View.OnTouchListener {
 
    HorizontalScrollView hScroll1, hScroll2;
    VScrollView vScroll1;
    ScrollView vScroll2;
    float mx, my, curX, curY;
    private boolean started = false;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gost8509);
 
        hScroll1 = (HorizontalScrollView) findViewById(R.id.scrollHorizontal1);
        hScroll1.setOnTouchListener(this);
        hScroll2 = (HorizontalScrollView) findViewById(R.id.scrollHorizontal2);
        hScroll2.setOnTouchListener(this);
        vScroll1 = (VScrollView) findViewById(R.id.scrollVertical1);
        vScroll1.setOnTouchListener(this);
        vScroll2 = (ScrollView) findViewById(R.id.scrollVertical2);
        vScroll2.setOnTouchListener(this);
        vScroll1.sv = hScroll1;
    }
 
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        curX = event.getX();
        curY = event.getY();
        int x = (int) (mx - curX);
        int y = (int) (my - curY);
        switch (event.getAction()) {
            case MotionEvent.ACTION_MOVE:
                if (started) {
                    vScroll1.scrollBy(0, y);
                    vScroll2.scrollBy(0, y);
                    hScroll1.scrollBy(x, 0);
                    hScroll2.scrollBy(x, 0);
                } else {
                    started = true;
                }
                mx = curX;
                my = curY;
                break;
            case MotionEvent.ACTION_UP:
                vScroll1.scrollBy(0, y);
                vScroll2.scrollBy(0, y);
                hScroll1.scrollBy(x, 0);
                hScroll2.scrollBy(x, 0);
                started = false;
                break;
        }
        return true;
    }
}
При этом способе у меня перестает работать "бросок" (что естественно) и основная загвоздка в том, что если основная картинка очень больших размеров, то она перестает отображаться в эмуляторе.

2 способ
Расположить все картинки в WebView:
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
51
52
53
54
55
56
57
58
59
60
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/imageView1"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:contentDescription="@string/app_name"
        android:src="@drawable/corner8509"/>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:id="@+id/linearLayout"
        android:layout_alignTop="@+id/linearLayout2"
        android:layout_toLeftOf="@+id/linearLayout2">
 
        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/webView3" />
 
    </LinearLayout>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_toRightOf="@+id/imageView1"
        android:layout_below="@+id/imageView1"
        android:id="@+id/linearLayout2">
 
        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/webView4" />
 
    </LinearLayout>
 
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignBottom="@+id/imageView1"
        android:layout_toRightOf="@+id/imageView1">
 
        <WebView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/webView2" />
 
    </LinearLayout>
 
</RelativeLayout>
В этом случае все картинки отображаются без проблем, но если их связать таким образом как в первом варианте, то картинка при скролле уползает за границы экрана) и опять естественно не работает "бросок".

А теперь вопрос )
Как реализовать первый способ, что бы большие картинки отображались на устройстве и работал бросок?
или
Как реализовать второй способ, что бы работал бросок и картинка в WebView не "убегала"?
или
Может есть какой-то более рациональный и логичный способ реализовать то, что мне нужно?
или
Забить на это программирование и учиться вышивать крестиком? )

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