#android #android-imageview #android-gridview
#Android #android-imageview #android-gridview
Вопрос:
Я использую gridview с адаптером изображений для рендеринга изображений.
Я хочу знать, возможно ли заменить конкретное изображение, если у меня есть информация о местоположении этого изображения?
Для. например, у меня есть переменная previous location, в которой я сохраняю предыдущую выбранную позицию изображения, допустим, ее 1 (прямоугольное изображение). Теперь я хочу заменить изображение в местоположении 1 каким-либо другим изображением (квадратным изображением). Как я могу это сделать?
Ответ №1:
проверьте, getChildAt (position) APIhttp://developer.android.com/reference/android/view/ViewGroup.html#getChildAt (int)
как только вы получите ссылку на конкретный дочерний вид, вы можете изменить изображение.
Комментарии:
1. спасибо sat за ответ. Я прочитал документацию, я хочу знать, правильно ли это: View rv=grid_main.getChildAt(location); потому что для rv нет метода setImageResource
2. Вы должны получить ссылку на gridview, GridView grid = (GridView) findViewById(R.id.gridviewid) , затем получить дочерний элемент, используя ImageView v = grid.getChild(position); v.setImageBitmap(bitmap);
3. Я должен использовать ImageView v = (ImageView)grid.getChildAt(location); v.setImageResource (mThumbIds [position]); Но когда я запускаю приложение, оно показывает, что приложение неожиданно остановилось
4. Что за журнал ошибок? Если это исключение ClassCast , то проверьте, какой вид используется в дочерних элементах GridView. попробуйте с View v и установите background.
5. Отображается следующая ошибка: 05-24 13:28:27.529: ОШИБКА / AndroidRuntime(301): ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: main 05-24 13:28:27.529: ОШИБКА / AndroidRuntime (301): java.lang. ClassCastException: android.widget. LinearLayout 05-24 13:28:27.529: ОШИБКА / AndroidRuntime(301): в com.example.moodjournal.MoodJournal$ImageAdapter $ 1.onClick(MoodJournal.java:135)