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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Kilimangaro
3 / 3 / 0
Регистрация: 11.07.2012
Сообщений: 54
#1

CustomView как организовать скрол? - Программирование Android

07.11.2015, 17:43. Просмотров 170. Ответов 2
Метки нет (Все метки)

Как сделать так что бы CustomView мог скролироваться? Уже все перепробовал. Оборачивал в ScrollView (в этом случае изображение просто не выводится на экран). Помогите, пожалуйса
Java
1
2
3
4
5
6
7
8
9
10
public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 
 
}
Java
1
2
3
4
5
6
7
8
9
10
public class DrawView extends View {
    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.map), 10, 15, null);
    }
 
    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
    android:orientation="vertical"
android:id="@+id/horizontalScrollView" >
 
        <android.test.exampleproject.DrawView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/view" />
</LinearLayout>
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2015, 17:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос CustomView как организовать скрол? (Программирование Android):

CustomView разные изображения для разных экранов - одна система координат - Как? - Программирование Android
Есть изображение, карта, на ней я должен в координатах размещать объекты. Изображения разные: hdpi, ldpi, mdpi и так далее. Когда я...

Добавить скрол в сам элемент TextView - Программирование Android
&lt;ScrollView xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmlns:tools=&quot;http://schemas.android.com/tools&quot; ...

Как организовать сервис? - Программирование Android
Здравствуйте! Подскажите пожалуйста, как лучше организовать сервис, который каждый день в заданное время, которое можно устанавливать из...

Как организовать фоновую задачу - Программирование Android
Всем привет. Посоветуйте как организовать примерно следующее: у меня есть несколько вкладок на каждой из них отображается &quot;динамическая&quot;...

Как лучше организовать напоминалку? - Программирование Android
Здравствуйте! Вот думаю написать прогу-напоминалку. Обязательно должна быть ф-ция отправки уведомлений в заданное время (или срабатывания...

Подскажите как правильно организовать работу с БД - Программирование Android
Есть класс DBHelper: public class DBHelper extends SQLiteOpenHelper { public static final String GET_PRICE = &quot;SELECT * from...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 655
07.11.2015, 17:50 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Kilimangaro, вот
1
Kilimangaro
3 / 3 / 0
Регистрация: 11.07.2012
Сообщений: 54
07.11.2015, 18:26  [ТС] #3
Mikalai, очень спасибо. Вот что потребовалось изменить, что бы это заработало
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
public class DrawView extends View {
 
    private final GestureDetector gestureDetector;
 
    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.wagon), 10, 15, null);
    }
 
    public DrawView(Context context, AttributeSet attrs) {
        super(context, attrs);
        setFocusable(true);
        gestureDetector = new GestureDetector(context, new MyGestureListener());
    }
 
    /**
     * Перехватывает нажатие пальцев, собственно суть скролла состоит в том,
     * что пользователь перетягивает изображение пальцем.
     * @param event
     * @return
     */
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (gestureDetector.onTouchEvent(event)) return true;
        return true;
    }
 
    /**
     * Непосредственно двигает изображение, на дистанцию которую
     * пользователь перетягивает пальцем.
     */
    private class MyGestureListener extends GestureDetector.SimpleOnGestureListener{
        @Override
        public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
            scrollBy((int)distanceX, (int)distanceY);
            return true;
        }
    }
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.11.2015, 18:26
Привет! Вот еще темы с ответами:

Подскажите, как организовать свое обучения - Программирование Android
Начал учить андроид, выучил основы, стало надоедать делать маленькие примеры, и я решил делать нормальные программы....

Как организовать сохранение данных при регистрации - Программирование Android
Здравствуйте! Делаю регистрационную форму. Регистрация состоит из нескольких частей: 1 ФИО и контакты 2 Дополнительная информация ...

Как организовать повторение будильника через setExact()? - Программирование Android
Добрый день! Нужно организовать ТОЧНЫЙ повторяющийся будильник методом setExact(). Я пробовал так AlarmManager am = (AlarmManager)...

Как по уму организовать циклическую работу службы? - Программирование Android
Привет. Для реализации циклических действия в фоне я делаю так: public class Server extends IntentService { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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