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

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

Войти
Регистрация
Восстановить пароль
 
correcеt
-1 / 3 / 1
Регистрация: 20.04.2011
Сообщений: 412
#1

Замена изображения в imageview по нажатию - Программирование Android

20.02.2016, 21:39. Просмотров 439. Ответов 2
Метки нет (Все метки)

Всем привет! Такой вопрос:
Нажимаю на imagevie и хочу что бы менялось изображение.
Имеется 3 лаяута в которых есть такой код:
XML
1
2
3
4
5
6
7
8
<ImageView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="10dp"
            android:id="@+id/settings_sound"
            android:background="@drawable/speaker_icon_on"
            android:layout_gravity="bottom|right" />
ID во всех 3-х лаяутах @+id/settings_sound одинаковый.
Все реализовал в классе main, нажимаю на изображение и ничего не происходит(Сильно не пинайте,новичок)
Кликните здесь для просмотра всего текста
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package ru.suhov_vyacheslav.viewpager;
 
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
 
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        viewPager.setAdapter(new CustomPagerAdapter(this));
    }
    public enum CustomPagerEnum {
 
        fragment(R.string.red, R.layout.fragment),
        fragment2(R.string.blue, R.layout.fragment2),
        fragment3(R.string.orange, R.layout.fragment3);
 
        private int mTitleResId;
        private int mLayoutResId;
 
        CustomPagerEnum(int titleResId, int layoutResId) {
            mTitleResId = titleResId;
            mLayoutResId = layoutResId;
        }
 
        public int getTitleResId() {
            return mTitleResId;
        }
 
        public int getLayoutResId() {
            return mLayoutResId;
        }
 
    }
 
}
 class CustomPagerAdapter extends PagerAdapter {
 
    private Context mContext;
 
    public CustomPagerAdapter(Context context) {
        mContext = context;
    }
 
    /* public View onCreateView(LayoutInflater inflater, ViewGroup container,
                              Bundle savedInstanceState) {
         View v = inflater.inflate(R.layout.fragment, container, false);
         imageView_sound = (ImageView) v.findViewById(R.id.settings_sound);
         imageView_sound.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
                 imageView_sound.setImageResource(R.drawable.speaker_icon_off);
             }
         });
         return v;
     }*/
 
    @Override
    public Object instantiateItem(ViewGroup collection, int position) {
        MainActivity.CustomPagerEnum customPagerEnum = MainActivity.CustomPagerEnum.values()[position];
        LayoutInflater inflater = LayoutInflater.from(mContext);
        ViewGroup layout = (ViewGroup) inflater.inflate(customPagerEnum.getLayoutResId(), collection, false);
        collection.addView(layout);
        return layout;
    }
 
    @Override
    public void destroyItem(ViewGroup collection, int position, Object view) {
        collection.removeView((View) view);
    }
 
    @Override
    public int getCount() {
        return MainActivity.CustomPagerEnum.values().length;
    }
 
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }
 
    @Override
    public CharSequence getPageTitle(int position) {
        MainActivity.CustomPagerEnum customPagerEnum = MainActivity.CustomPagerEnum.values()[position];
        return mContext.getString(customPagerEnum.getTitleResId());
    }
 
}
 
class FragmentAdapter extends Fragment {
    public  ImageView imageView_sound;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.i("Left", "onCreate()");
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        Log.i("Left", "onCreateView()");
        View v = inflater.inflate(R.layout.fragment, container, false);
        imageView_sound = (ImageView) v.findViewById(R.id.settings_sound);
        imageView_sound.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                imageView_sound.setImageResource(R.drawable.speaker_icon_off);
            }
        });
        return v;
 
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.02.2016, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Замена изображения в imageview по нажатию (Программирование Android):

Загрузка изображения в imageview - Программирование Android
Всем привет. Возникла проблема, распарсил сайт в arraylist, сохранил в БД, далее мне нужно вывести сайт на активность. Делаю так: ...

Увеличение изображения в ImageView - Программирование Android
Необходимо увеличить изображение, которое в ImageView (просмотр через ViewPager). Делаю так: int width = bitmap.getWidth() ; ...

Загрузка изображения из интернета в imageview - Программирование Android
Доброго, передаю из одной активити в другую ссылку на картинку, она прямая, как мне ее вывести в imageview?

Как сделать границы в пространстве ImageView при прокрутке изображения - Программирование Android
Как сделать границы в пространстве ImageView при прокрутке большого изображения &lt;ImageView ...

Скопировать картинку из одной ImageView в другую ImageView - Программирование Android
В ImageView поставлена картинка методом setImageResource. По нажатию на неё, нужно такую-же картинку поставить в другую вью, а в первой...

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

2
correcеt
-1 / 3 / 1
Регистрация: 20.04.2011
Сообщений: 412
21.02.2016, 16:16  [ТС] #2
Ребята,выручайте...
Переделал все....раскидал по классам
Замена изображения в imageview по нажатию

Класс main
Кликните здесь для просмотра всего текста
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
package ru.pavel_bahratsou.viewpager;
 
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
 
public class MainActivity extends AppCompatActivity  {
  //  ImageView im1,im2,im3,im4,im5,im6,im7;
    static final String TAG = "myLogs";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        viewPager.setAdapter(new CustomPagerAdapter(this));
 
 
 
    }
 
    public enum CustomPagerEnum {
 
        fragment(R.string.red, R.layout.fragment),
         im1(R.string.red,R.layout.im1);
               private int mTitleResId;
        private int mLayoutResId;
 
        CustomPagerEnum(int titleResId, int layoutResId) {
            mTitleResId = titleResId;
            mLayoutResId = layoutResId;
        }
 
        public int getTitleResId() {
            return mTitleResId;
        }
 
        public int getLayoutResId() {
 
            return mLayoutResId;
        }
 
    }
}


Pageapadter класс
Кликните здесь для просмотра всего текста
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
package ru.pavel_bahratsou.viewpager;
 
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
 
/**
 * Created by Pavel on 21.02.2016.
 */
class CustomPagerAdapter extends PagerAdapter {
 
    private Context mContext;
 
    public CustomPagerAdapter(MainActivity context) {
        mContext = context;
    }
 
 
 
    @Override
    public Object instantiateItem(ViewGroup collection, int position) {
        MainActivity.CustomPagerEnum customPagerEnum = MainActivity.CustomPagerEnum.values()[position];
        LayoutInflater inflater = LayoutInflater.from(mContext);
        ViewGroup layout = (ViewGroup) inflater.inflate(customPagerEnum.getLayoutResId(), collection, false);
        collection.addView(layout);
        return layout;
    }
 
    @Override
    public void destroyItem(ViewGroup collection, int position, Object view) {
        collection.removeView((View) view);
    }
 
    @Override
    public int getCount() {
        return MainActivity.CustomPagerEnum.values().length;
    }
 
    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }
 
    @Override
    public CharSequence getPageTitle(int position) {
        MainActivity.CustomPagerEnum customPagerEnum = MainActivity.CustomPagerEnum.values()[position];
        return mContext.getString(customPagerEnum.getTitleResId());
    }
 
}


В классе фрагмента ,класс fragment лаяут fragment пытаюсь ловить свои нажатия
Кликните здесь для просмотра всего текста
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
package ru.pavel_bahratsou.viewpager;
 
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
 
public class fragment  extends Fragment {
 
   ImageView imageView_sound;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment,container, false);
        imageView_sound = (ImageView) view.findViewById(R.id.settings);
        imageView_sound.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                imageView_sound.setImageResource(R.drawable.speaker_icon_off);
            }
        });
        return view;
    }
}
0
correcеt
-1 / 3 / 1
Регистрация: 20.04.2011
Сообщений: 412
21.02.2016, 16:20  [ТС] #3
Нажимаю и ничего не происходит...ошибок нет...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.02.2016, 16:20
Привет! Вот еще темы с ответами:

ImageView - Программирование Android
Добрый день. Вы не подскажите, как передать изображение из одного ImageView в Другой. Допустим есть три картинки в папке drawable и одна...

ImageView - Программирование Android
Добрый день ! Делал проект с нуля, все как обычно, но при поиске id для ImageView мне вдруг выдает : The method findByViewId(int) is...

Сохранение ImageView - Программирование Android
Всем привет, У меня такой вопрос, есть код который сохраняет imageview в папку Pictures , все работает и сохраняет ,захожу в проводник в...

На счет ImageView - Программирование Android
Ребят, очень важный вопрос: Предложим у меня есть две картинки у них есть свои ID, как написать проверку - &quot;Есть ли выше одной картинки...


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

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

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