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

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

Войти
Регистрация
Восстановить пароль
 
No Bro
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 56
#1

Что то вроде Маркера - Android

10.03.2016, 07:04. Просмотров 257. Ответов 12
Метки нет (Все метки)

Здравствуйте.
и снова с тупым вопросом.
можно ли как то реализовать что то типо как маркер, как в гугл картах.
но ставить их не программной а в самом приложение через удержание.
подскажите где почитать можно об этом ну или пример.
за ранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2016, 07:04     Что то вроде Маркера
Посмотрите здесь:

Сделать в программе что-то вроде бонуса Android
Android Разные drawable для маркера Google Maps
Несколько snippet для маркера Google Maps v.2 Android
Android Как достать из textView, что что сейчас отображает ViePager
Android Прекомпил в яве вроде ifndef
Android Можно ли сделать на андроид приложение с активностью не во весь экран, а вроде окна на винде?
Что то вроде регистрации Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ILNAR_93
Android
213 / 213 / 21
Регистрация: 19.01.2013
Сообщений: 1,548
Записей в блоге: 2
10.03.2016, 08:29     Что то вроде Маркера #2
Как прикрутить карту в проект можно посмотреть в гугле
Вот официальный мануал (очень информативный) https://developers.google.com/maps/d...n/android-api/


Цитата Сообщение от No Bro Посмотреть сообщение
через удержание.
Это как я понимаю простой LongClick

Java
1
2
3
4
5
6
7
8
9
10
11
GoogleMap gm;
 
gm.setOnMapLongClickListener(this); 
 
@Override    
public void onMapLongClick(LatLng point) {
    gm.addMarker(new MarkerOptions()
        .position(point)
        .title("You are here")           
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));  
}
No Bro
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 56
10.03.2016, 08:34  [ТС]     Что то вроде Маркера #3
саму карту гугл мап мне не надо. нужен только маркер или наподобие маркера.
ILNAR_93
Android
213 / 213 / 21
Регистрация: 19.01.2013
Сообщений: 1,548
Записей в блоге: 2
10.03.2016, 08:37     Что то вроде Маркера #4
Цитата Сообщение от No Bro Посмотреть сообщение
саму карту гугл мап мне не надо. нужен только маркер или наподобие маркера.
МАРКЕР КУДА БУДЕТ ДОБАВЛЯТЬСЯ? Прямо во вьюшку?
No Bro
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 56
10.03.2016, 09:08  [ТС]     Что то вроде Маркера #5
На imageview. Т.е. На изображение.
ILNAR_93
Android
213 / 213 / 21
Регистрация: 19.01.2013
Сообщений: 1,548
Записей в блоге: 2
10.03.2016, 09:56     Что то вроде Маркера #6
Вот что гугл предлагает:

Пример тут с onTouch - т.е. касание, а тебе нужно будет переделать под LongClick, или в onTouch сравнивать время ACTION_DOWN и ACTION_UP

Используется RelativeLayout

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
final RelativeLayout rr = (RelativeLayout) findViewById(R.id.rr);
    rr.setOnTouchListener(new OnTouchListener() {
 
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                int x = (int) event.getX();
                int y = (int) event.getY();
                RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                        RelativeLayout.LayoutParams.WRAP_CONTENT,
                        RelativeLayout.LayoutParams.WRAP_CONTENT);
                ImageView iv = new ImageView(getApplicationContext());
// нужно задать картинку...
                lp.setMargins(x, y, 0, 0);
                iv.setLayoutParams(lp);
                iv.setImageDrawable(getResources().getDrawable(
                        R.drawable.gr1));
                ((ViewGroup) v).addView(iv);
            }
            return false;
        }
    });
No Bro
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 56
10.03.2016, 12:22  [ТС]     Что то вроде Маркера #7
ругается на event
Java
1
2
3
if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    int x = (int) event.getX();
                    int y = (int) event.getY();

полностью
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
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
 
public class SxemaActivity extends Activity {
 
 
    private TouchImageView image;
    private static int[] images = { R.drawable.pg };
    int index;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sxema);
        image = (TouchImageView) findViewById(R.id.img);
        index = 0;
 
 
        final RelativeLayout rr = (RelativeLayout) findViewById(R.id.rr);
        rr.setOnLongClickListener(new View.OnLongClickListener() {
 
            @Override
            public boolean onLongClick(View v) {
 
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    int x = (int) event.getX();
                    int y = (int) event.getY();
                    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
                            RelativeLayout.LayoutParams.WRAP_CONTENT,
                            RelativeLayout.LayoutParams.WRAP_CONTENT);
                    ImageView iv = new ImageView(getApplicationContext());
// нужно задать картинку...
                    lp.setMargins(x, y, 0, 0);
                    iv.setLayoutParams(lp);
                    iv.setImageDrawable(getResources().getDrawable(
                            R.drawable.gr1));
                    ((ViewGroup) v).addView(iv);
                }
 
                return false;
            }
 
        });
        
        setCurrentImage();
    }
    private void setCurrentImage() {
        image.setImageResource(images[index]);
        index = (++index % images.length);
    }
 
}
зачеркнут.
Java
1
.getDrawable

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/rr">
 
 
    <com.example.igor.enser.TouchImageView
        android:id="@+id/img"
        android:scaleType="centerCrop"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
 
</RelativeLayout>
ILNAR_93
Android
213 / 213 / 21
Регистрация: 19.01.2013
Сообщений: 1,548
Записей в блоге: 2
10.03.2016, 13:15     Что то вроде Маркера #8
No Bro, Я чуть ошибся говоря
а тебе нужно будет переделать под LongClick
У onClick`а нет MotionEvent - из за этого у тебя ругается

_________________________
Лучше попробуй использовать тот код который я написал.. Где используется onTouch

Добавлено через 2 минуты
В коде же ImageView создается динамически..
тебе не нужно уже com.example.igor.enser.TouchImageView.. Или я просто не понимаю что ты хочешь
там есть коммент // нужно задать картинку... там надо делать
Java
1
2
iv.setImageResource(images[index]);
        index = (++index % images.length);
No Bro
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 56
10.03.2016, 13:29  [ТС]     Что то вроде Маркера #9
в com.example.igor.enser.TouchImageView уже есть картинка (ImageView), на эту картинку которая уже стоит надо ставить маркер.
Паблито
резкий
1941 / 1681 / 520
Регистрация: 12.05.2014
Сообщений: 6,010
Завершенные тесты: 1
10.03.2016, 13:31     Что то вроде Маркера #10
можно ведь поместить ImageView внутри FrameLayout и по клику на лаяут добавлять или перемещать другую картинку с маркером
там писать 20 строк от силы
No Bro
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 56
10.03.2016, 13:38  [ТС]     Что то вроде Маркера #11
пример не приведете. я не очень силен в этом только учусь)
Паблито
резкий
1941 / 1681 / 520
Регистрация: 12.05.2014
Сообщений: 6,010
Завершенные тесты: 1
10.03.2016, 17:05     Что то вроде Маркера #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ

Не по теме:

если не помогут то через часик напишу, а пока что обед



Добавлено через 3 часа 25 минут
что-то типа такого, где-то в onCreate
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        final View markerLayout = findViewById(R.id.markerLayout);
        final ImageView marker = (ImageView) findViewById(R.id.marker);
        markerLayout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent e) {
                switch (e.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        if (!marker.isShown()) marker.setVisibility(View.VISIBLE);
                        marker.setX(e.getX());
                        marker.setY(e.getY());
                        break;
                    case MotionEvent.ACTION_MOVE:
                        marker.setX(e.getX());
                        marker.setY(e.getY());
                        break;
                }
                return false;
            }
        });
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        <FrameLayout
            android:id="@+id/markerLayout"
            android:clickable="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
 
            <View
                android:layout_width="256dp"
                android:layout_height="256dp"
                android:background="#579" />
 
            <ImageView
                android:id="@+id/marker"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_marker"
                android:visibility="gone" />
        </FrameLayout>
вместо View там может быть что угодно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2016, 09:41     Что то вроде Маркера
Еще ссылки по теме:

Android Привязка маркера к камере в google maps
Android Описание маркера в развернутом виде, GoogleMap API

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

Или воспользуйтесь поиском по форуму:
No Bro
0 / 0 / 0
Регистрация: 23.02.2016
Сообщений: 56
11.03.2016, 09:41  [ТС]     Что то вроде Маркера #13
Спасибо, завтра попробую, отпишусь что получилось

Добавлено через 13 часов 18 минут
подскажите как добавлять не один маркер, а несколько?

Добавлено через 1 час 47 минут
забыл ругался на
Java
1
marker.setX(e.getX());
добавил
Java
1
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
Yandex
Объявления
11.03.2016, 09:41     Что то вроде Маркера
Ответ Создать тему
Опции темы

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