• 0
Kapa

Вывод личных сообщений

Вопросы

Доброго дня! Пишу первое приложение под андроид, какие компоненты можно использоваться для вывода сообщений с аватарками?

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


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

6 ответов на этот вопрос

  • 0
2 часа назад, Равиль Зарипов (ZuBy) сказал:

Вы чат пишете?

Да. Точнее хочу вывести диалоги из вк, и соответственно читать эти диалоги.

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

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


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

Оптимального варианта нет, можно сделать на ЛистВью, но сложно. Можно на ЛистБоксе, легко, но будет ужасно лагать. Прочие варианты со СкролБоксом тоже будут лагать.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
24 минуты назад, Равиль Зарипов (ZuBy) сказал:

Оптимального варианта нет

А если с webbrowser что-то придумать? Динамически менять содержимое.

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


Ссылка на сообщение
Поделиться на другие сайты
  • 1
В 12.05.2018 в 17:02, Kapa сказал:

 Пишу первое приложение под андроид, 

Мы с вами в одном окопе. Путь к ListView лежит через ListBox. т.e надо помучится с listbox что бы понять что без ListView не обойтись. 

В чате как правило картинка и текст возможно не один. 

lw01.png.5f3dac60ea9c2c5299f444e23b6633fa.png

Создайте в ListView в режиме dinamicAppearance свои поля со своими именами, Далее ПКМ по listView выбираете TogleDesignMode там двигаете свои добавленные поля как вам удобно. 

Далее смотрите код. Чем смог тем помог!

//Добавить итем в список
void __fastcall TTabbedForm::add_item(int num_ico,UnicodeString *fname, UnicodeString *ext_name, unsigned int color)
    {
    TListItemText  *ext;
    TListItemImage  *ico;

    TListViewItem* item = ListView1->Items->Add();
    item->Height = 30;

    ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("extenssion_text"));
    if (ext)
        {
        ext->PlaceOffset->X = ListView1->Width -  60;
        ext->Text = *ext_name;
        ext->TextColor = color;
        }
    ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("file_name_text"));
    if (ext)
        {
        ext->Text = *fname;
        ext->TextColor = color;
        if (num_ico==0)    ext->Width = ListView1->Width - 10;   //длина до расширения.
        else            ext->Width = ListView1->Width - 90;   //длина до расширения.

        }
    ico = dynamic_cast<TListItemImage*>(item->Objects->FindDrawable("Icon_Image"));
    if (ico)
        {
        switch (num_ico)
            {
            case 0: ico->Bitmap = Image_64x64_ret->Bitmap;         break;
            case 1: ico->Bitmap = Image_64x64_folder->Bitmap;     break;
            case 2:    ico->Bitmap = Image_48x48_spk->Bitmap;         break;
            case 3: ico->Bitmap = Image_64x64_play->Bitmap;     break;
            case 4: ico->Bitmap = Image_64x64_pause->Bitmap;     break;
            default:  break;
            }
        }
    }

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 14.05.2018 в 00:41, Sergiy_83 сказал:

Мы с вами в одном окопе. Путь к ListView лежит через ListBox. т.e надо помучится с listbox что бы понять что без ListView не обойтись. 

В чате как правило картинка и текст возможно не один. 

lw01.png.5f3dac60ea9c2c5299f444e23b6633fa.png

Создайте в ListView в режиме dinamicAppearance свои поля со своими именами, Далее ПКМ по listView выбираете TogleDesignMode там двигаете свои добавленные поля как вам удобно. 

Далее смотрите код. Чем смог тем помог!


//Добавить итем в список
void __fastcall TTabbedForm::add_item(int num_ico,UnicodeString *fname, UnicodeString *ext_name, unsigned int color)
    {
    TListItemText  *ext;
    TListItemImage  *ico;

    TListViewItem* item = ListView1->Items->Add();
    item->Height = 30;

    ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("extenssion_text"));
    if (ext)
        {
        ext->PlaceOffset->X = ListView1->Width -  60;
        ext->Text = *ext_name;
        ext->TextColor = color;
        }
    ext = dynamic_cast<TListItemText*>(item->Objects->FindDrawable("file_name_text"));
    if (ext)
        {
        ext->Text = *fname;
        ext->TextColor = color;
        if (num_ico==0)    ext->Width = ListView1->Width - 10;   //длина до расширения.
        else            ext->Width = ListView1->Width - 90;   //длина до расширения.

        }
    ico = dynamic_cast<TListItemImage*>(item->Objects->FindDrawable("Icon_Image"));
    if (ico)
        {
        switch (num_ico)
            {
            case 0: ico->Bitmap = Image_64x64_ret->Bitmap;         break;
            case 1: ico->Bitmap = Image_64x64_folder->Bitmap;     break;
            case 2:    ico->Bitmap = Image_48x48_spk->Bitmap;         break;
            case 3: ico->Bitmap = Image_64x64_play->Bitmap;     break;
            case 4: ico->Bitmap = Image_64x64_pause->Bitmap;     break;
            default:  break;
            }
        }
    }

 

Да, думаю это то что мне нужно, но я так и не разобрался как его заполнять.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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