0

編集4:スペースを埋める大きなフォントを作成して解決しました。以下に掲載されている解決策を参照してください

編集3:述べた私の問題は解決できないという結論に達しました。問題は、フォントがjのようなディセンダーや大文字の上のウムラウトのためのスペースを残しているため、画像スペースを埋めないことです。さらに検索すると、明らかに私が必要としているネガティブパディングが未定義であることがわかりました。

1つの解決策は、画像スペース全体を埋めるカスタムフォントを作成することです。もう1つは、画像ボタンを使用するための以下の提案ですが、フォーカスの色の変更とプログラムの状態の基本画像の変更の両方が必要であるという私の追加の複雑さは、私がそれを理解できない点までその解決策を複雑にします。

Edit2:スクリーンショットを追加

編集:以下にドローアブルのコードを追加しました。

私はstackoverflowで見つけたすべての例とGoogleからのすべての回答を試しました。私はあきらめる前に昨夜少なくとも3時間を過ごしました。誰かが答えを知っていれば、私は確かにこれについていくつかの助けを使うことができます。

私はAndroidアプリにボタンを持っていますが、ボタンは非常に大きくすることしかできず、ボタン内のテキストは明るい日光の下で読み取れる必要があるため、大きくする必要があります。解決策は明らかです。テキストをボタンより1ピクセル小さくします。つまり、パディングを小さくします。android:paddingTop="-10sp"は何もしません。私は考えられるすべてを試しました。明確にするために、ボタン内のテキストの上部と下部とボタン自体の端との間にスペースをほとんど入れないようにします。

これが私のボタンの1つの例です:

            <Button
        android:id="@+id/buttonSetTgt"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textHeader"
        android:layout_alignParentLeft="true"
        android:background="@drawable/button_start"
        android:textColor="@android:color/white"
        android:onClick="onSetTgt"
        android:paddingLeft="6sp"
        android:paddingRight="6sp"
        android:paddingTop="0sp"
        android:paddingBottom="0sp"
        android:text="&#x25CE;"
        android:textSize="@dimen/menu"
        android:textStyle="bold" />

button_startには、いくつかの色と丸みを帯びた角の定義があります。

ゼロの上下にパディングが表示されますが、負の数ではうまくいかないため、0spまたは-10spは同等です。


ドローアブルのコードは次のとおりです。

    <?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" >
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle" >
         <solid android:color="#f07304"/> 
        <corners android:radius="7dp"/>
    </shape>
</item>
<item>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="#222222"/> 
        <corners android:radius="7dp"/>
    </shape>
</item>

ここに画像の説明を入力してください

4

3 に答える 3

1

提供されている素敵な機能があります...Imagebutton...

画像(jpegまたはpng)を好きなようにデザインします...画像の好きな場所にテキストを配置し、設定するだけですandroid:src="@drawable/yourimage

そして、ここに行くと、あなたが望むように見えるでしょう...

ImageButtonを通常のボタンとして処理できます

これを実装してみてください...

于 2013-03-22T18:19:46.380 に答える
0

パディングの代わりにマージンを使用してみてください。また、ボタンの背景は、プロポーションを維持しながらテキストを収容するのに十分な幅で描画できますか?

于 2013-03-22T16:23:24.380 に答える
0

ネガティブパディングを指定できないことがわかったので、解決策は、フォント自体を大きくして、パディングが始まるところまでほぼ完全に移動することでした。つまり、tフォントは、アクセント領域の上部まで、およびディセンダー領域の下部まで領域全体を塗りつぶす必要があります。私がしたことは、CR8SoftwareSolutionsによってType3.2と呼ばれるプログラムを見つけました。お気に入りのフォントをロードし、スケーリングアクションの1つをコピーして、約1.56の倍率を取得し、ベースラインとフォントのエッジを調整して保存します。私はおそらくもう少し大きくなって、実際にはアクセントラインの上部より上に行った可能性があります。もう一度やったら、フォーム文字フォントを読み込んで、フォントスペースがどこにあるかを実際に確認します。試用版では、大文字のRまで節約できるので、私の場合は、数文字で問題ありませんでした。次に、フォントを「assets」フォルダーにロードし、コードのonCreateセクションに次のようなコードを追加しました。

    Typeface tf = Typeface.createFromAsset(this.getAssets(), "startline.ttf");
    Button button = (Button) findViewById(R.id.buttonSync);
    button.setTypeface(tf);
    Button button2 = (Button) findViewById(R.id.buttonSetTgt);
    button2.setTypeface(tf);
    etc...

これにより、新しい画像を作成せずにフォントとボタンのサイズを変更でき、すべての背景などが正常に機能します。

ここに画像の説明を入力してください

于 2013-03-28T15:22:44.617 に答える