1

テキストを含める必要がある ImageButton があります。このために、LayerDrawable (CustomViewFactory クラスの createImage メソッド) を使用します。

 public class CustomViewFactory extends ImageButton {
    public CustomViewFactory createButton(String text) {
    this.setBackgroundDrawable(createImage(R.drawable.back_configuration, text));
    return this;
    }

back_configuration.xml

  <?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@drawable/back_button_pressed" adroid:state_pressed="true">     </item>
    <item android:drawable="@drawable/back_button_normal"></item>
    <item android:drawable="@drawable/back_button_pressed" android:state_focused="true"/>

    </selector>

back_button_normal および back_button_pressed - 9 つのパッチ png ファイル。

public LayerDrawable createImage(int resource, String text){
        Drawable [] layers = new Drawable[2];
        layers[0] = new TextDrawable(text);
        layers[1] = r.getDrawable(R.drawable.back_configuration);
        return new LayerDrawable(resource);
    }

public class TextDrawable extends Drawable {

    private final String text;
    private final Paint paint;
    public TextDrawable(String text) {

        this.text = text;
       this.paint = new Paint();
        paint.setColor(Color.WHITE);
        paint.setFilterBitmap(true); 
        paint.setTextSize(textSize);
        paint.setAntiAlias(true);
        paint.setFakeBoldText(true);
        paint.setStyle(Paint.Style.FILL);
        paint.setTextAlign(Paint.Align.LEFT);

    }

    @Override
    public void draw(Canvas canvas) {
        canvas.drawText(text, 0, 0, paint);
    }

    @Override
    public void setAlpha(int alpha) {
        paint.setAlpha(alpha);
    }

    @Override
    public void setColorFilter(ColorFilter cf) {
        paint.setColorFilter(cf);
    }

    @Override
    public int getOpacity() {
        return PixelFormat.TRANSLUCENT;
    }
}

問題。テキストが大きい場合は、切り取られます。中の文字に合わせてImageButton自体を大きくする方法。代替方法は何ですか。

ボタンを使用すると、ボタン上で画像が引き伸ばされます

私の英語で申し訳ありません。どうもありがとうございました。

4

1 に答える 1

0

imageViewまたはimageButtonではなくtextViewを使用してみてから、テキストビューの背景を必要な画像として割り当て、textViewに必要なテキストを設定して、layout_widthのwrap_contentにすることができます

編集:テキストビューにパディングを使用しているかどうかを確認してください。

于 2012-08-15T09:45:56.060 に答える