尝试在ImageButton或等效按钮上设置文本

时间:2018-08-10 15:20:13

标签: android android-button imagebutton

所以,我已经知道您不能在imageButton上放置文本,但这最终是我想要做的。我有一个选择题活动,其中有一个问题和4个答案可供选择。现在,答案有时是图像,有时是文本。将文字放在这些按钮上以获得文字答案的最佳方法是什么?

现在,我唯一能想到的就是将4个常规按钮放在同一位置,并根据需要使其不可见(这可能并不难),但感觉就像我在与Android规则抗争似乎有点乏味。

是否有已知的简便方法?

谢谢

3 个答案:

答案 0 :(得分:0)

据我了解您的情况。 您不应该对4个答案进行硬编码。 您需要创建一个recyclerView来保存两种类型的行的答案

注意:您可以限制回收仅对那些仅使getCount方法返回4的项目有效;

然后根据答案的类型(textView或ImageView)对所需的行进行充气

因此,在ItemView上设置一个侦听器以选择答案。

就是这样 希望这对您有所帮助。

答案 1 :(得分:0)

您可以简单地将TextView用于文本和图像,将setText用于文本答案,并将.setCompoundDrawablesWithIntrinsicBounds( R.drawable.smiley, 0, 0, 0);用于图像答案

答案 2 :(得分: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);