所以,我已经知道您不能在imageButton上放置文本,但这最终是我想要做的。我有一个选择题活动,其中有一个问题和4个答案可供选择。现在,答案有时是图像,有时是文本。将文字放在这些按钮上以获得文字答案的最佳方法是什么?
现在,我唯一能想到的就是将4个常规按钮放在同一位置,并根据需要使其不可见(这可能并不难),但感觉就像我在与Android规则抗争似乎有点乏味。
是否有已知的简便方法?
谢谢
答案 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);