Попытка установить текст в imagebutton или аналогичном

Итак, я уже знаю, что вы не можете поместить текст на imageButton, но в конечном итоге это то, что я хочу сделать. У меня есть задание с несколькими вариантами ответов, где есть вопрос и 4 ответа, на которые можно нажать. Иногда ответ - изображение, а иногда текст. Как лучше всего поместить текст поверх этих кнопок для текстовых ответов?

Прямо сейчас единственное, о чем я могу думать, - это разместить 4 обычные кнопки в одном месте и сделать их невидимыми по мере необходимости (что, вероятно, будет несложно), но мне кажется, что я борюсь с правилами Android, и это похоже на скучный.

Есть ли более простой способ сделать это?

Спасибо

Использовать радиогруппу для выбора ответа? для выбора используйте просмотр изображений и текстовый просмотр. Это обычная практика.

sanjeev 10.08.2018 17:26

Радиогруппа @sanjeev - не совсем то, что я ищу. У меня есть 4 большие кнопки под вопросом, и пользователь нажимает на ответ, а не проверяет пузырек радиогруппы.

microflakes 10.08.2018 17:33

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

sourabh kaushik 10.08.2018 18:19

Но почему кнопка? Кнопка обычно используется для выполнения функции или перехода к другому действию. Не рекомендуется использовать кнопку только для выбора ответа, если вы не хотите выполнять какую-либо функцию (что также может быть выполнено с помощью просмотра изображений или текста).

sanjeev 10.08.2018 18:30
0
4
61
3

Ответы 3

Насколько я понимаю ваш случай. Вы не должны жестко закодировать свои 4 ответа. Что вам нужно, так это создать recyclerView, чтобы хранить ваши ответы с двумя типами строк

Примечание: вы можете ограничить повторное использование только для элементов, просто сделайте getCount return 4;

И надуйте нужную строку в зависимости от того, какой тип ответа - textView или ImageView.

Таким образом, установите слушателя в ItemView, чтобы выбрать ответ.

Вот и все Надеюсь, это поможет вам.

Вы можете просто использовать TextView как для текста, так и для изображения, использовать setText для текстового ответа и использовать .setCompoundDrawablesWithIntrinsicBounds( R.drawable.smiley, 0, 0, 0); для ответа с изображением

Я нашел решение, которое хотел. Я буду использовать это, чтобы рисовать текст как доступный для рисования:

    ImageButton b= findViewById(R.id.imageButton);
    Bitmap bm=Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(bm);
    Paint p = new Paint(Paint.ANTI_ALIAS_FLAG);
    p.setTextSize(48);
    Typeface font = Typeface.createFromAsset(getAssets(), "fonts/aquariusno8cg.ttf");
    p.setTypeface(font);
    c.drawText("1e2e3e4e5e6e7e8e9e",0,224,p);
    Drawable testPaint = new BitmapDrawable(getResources(),bm);
    b.setImageDrawable(testPaint);

Другие вопросы по теме