Перейти к содержанию
  • Регистрация
  • 0
Aleks Serov

Просмотр картинок в ListView FMX

Вопрос

Всем привет! Посоветуйте как лучше сделать просмотрщик картинок из ImageList? (berlin, android)

Хочу выводить по три картинки(фото) в каждой строке списка с возможностью выбора любого фото для увеличения

Добавил на форму ImageList с 6-ю картинками, ListView в режиме DynamicAppearance(см.вложение) с прикрученным к нему ImageList

написал такой код для вывода 6-ти картинок в две строки:

var
a,i:Integer;
begin
a:=0;
for I:=1 to 2 do
begin
with ListView1.Items.Add do
    begin
    Data['Image1'] := a;
    Data['Image2'] := a+1;
    Data['Image3'] := a+2;
    end;
a:=a+3;
end;
end;

Все выводит, но есть одно маленькое "Но", при клике выделяется вся строка, тоесть сразу три картинки

а не одна по которой кликнул. Как решить эту проблему? 

listview.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Рекомендуемые сообщения

  • 0

Может реализовать нужную задачу будет проще на ListBox с тремя колонками добавляя в них картинки? Только как это реализовать я тоже не оч.представляю... ((

Изменено пользователем Aleks Serov

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
11 часов назад, Aleks Serov сказал:

Может реализовать нужную задачу будет проще на ListBox с тремя колонками добавляя в них картинки? Только как это реализовать я тоже не оч.представляю... ((

В ListBox может и проще , но фризить будет настолько жестко, что пожалеете о потраченном времени.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Я скачал ModernLV но как с ним работать не пойму. Если не сложно приведите простой пример кода для вывода изображений в ListView. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Сделал вывод изображений в ListBox, код такой:

var
I: Integer;
Size: TSize;
ListBoxItem: TListBoxItem;
Item: TCustomBitmapItem;
begin
Listbox1.BeginUpdate;
for I := 0 to 7 do
    begin
    ListBoxItem := TListBoxItem.Create(nil);
    Size := TSize.Create(130,245);
    ListBoxItem.StylesData['image'] := ImageList1.Bitmap(Size,i);
    ListBox1.AddObject(ListBoxItem);
    end;
Listbox1.EndUpdate;
end;

Но более 8 изображений почему-то вывести нельзя, если поменять в циклe 7 на 8 например то первое изображение

после вывода исчезнет, будут видны только последние 8. В чем трабла непонятно.. ((

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Я бы сделал это кодом. Отключил бы стандартное выделение ЛВ. А кодом бы уже смотрел в какую область был клик/тап. В зависимости от этого рисовал бы ректагл вокруг нужного изображения

Но код получился бы конечно немного громоздкий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Aleks, изучите ListView в режиме DynamicAppearance. по идее, там всё довольно просто.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

У меня на гитхабе есть примеры ModernLV, посмотри там все достаточно понятно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...