次のTextView
があります。
<TextView
Android:drawableLeft="@drawable/loading"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Updating Rates" />
結果は次のとおりです。
読み込み円のドロアブルを、その高さがテキストの高さと一致するように比例的に制限するにはどうすればよいですか?
また、可能であれば、テキストと画像の間にスペースを追加したいと思います。
loading
を小さくするには、画像を小さくします。
または、RelativeLayout
を使用して、負荷をImageView
に入れてスケーリングします。
または、 _Android:drawablePadding
_ (または setCompoundDrawablePadding()
)を使用して、ドロアブルとテキストの間にパディングを追加できます。
_Android:drawablePadding="3dp"
_
私は解決策を見つけたと思うが、少し遅れて
Drawable drawable = getResources().getDrawable(R.drawable.s_vit);
drawable.setBounds(0, 0, (int)(drawable.getIntrinsicWidth()*0.5),(int)(drawable.getIntrinsicHeight()*0.5));
ScaleDrawable sd = new ScaleDrawable(drawable, 0, scaleWidth, scaleHeight);
Button btn = findViewbyId(R.id.yourbtnID);
btn.setCompoundDrawables(sd.getDrawable(), null, null, null);
Raviのソリューションはうまくいきましたが、一部のデバイスではドロアブルが消えていました。スケーリングを削除することでこれを修正しました。
int bound = (int) (drawable.getIntrinsicWidth() * 0.5);
drawable.setBounds(0, 0, bound, bound);
b.setCompoundDrawables(drawable, null, null, null);
より良いソリューションは、描画可能なフォルダーにXMLを作成し、このXMLに画像を追加し、scaleTypeを「fitXY」として維持することです。これで、このXMLをdrawableLeftとして作成できます。