1

次のスケッチは私の問題を示しています。 ここに画像の説明を入力してください

上のスケッチは、コンテンツ、パディング、および境界線の標準モデルです。私が欲しいものは下のスケッチに示されています。文字の周りに余計なスペースがほとんどないボタンを作成したいと思います。これはすべて大文字にすることができます。標準的なものでできる最善のことは、パディングが0に設定されている中央のスケッチです。ネガティブパディングを取得する方法について質問を投稿しましたが、Androidでは定義されていないためです。imagebuttonsは実行できますが、特定の問題には一連の要件があり、ボタンを押したときにボタン内のテキストを変更し、ボタンを押したときに背景の色を変更する必要があるという問題があります。集中。

問題はAndroidモデルでのパラメーターの設定ではなく、コンテンツが使用可能なスペースを埋めていないことであることに気付きました。

私の考えは、フォントのベースラインより下のディセンダーや文字の上のアクセント記号を許可しない一連の噴水がある場合、つまり、文字がコンテンツ領域を埋める、またはほぼ埋める場合、私は家は無料です。どうやら私はカスタムフォントを作成することができましたが、フォントエディタを見つけようとするのを避けて、それを知りたいと思うことを学ぶことができれば。調べてみましたが見つかりません。すべてのUnicodeフォントを確認しましたが、見つかりません。オンラインフォントセレクターサイトをチェックしました。問題は、私が望むフォントがテキストの連続する行をヒットさせるか、ほとんど互いにヒットさせることだと思います。

独自のフォントを作成する必要がある場合、どのフォントエディタを使用する必要がありますか?たぶん、フォントを伸ばす方法があります。コンテンツ領域を大文字で埋めるフォントを取得する方法を知りたいだけです。

これを追加するために編集:

明確にするために。プログラムでテキストを変更する必要があります。たとえば、ボタンには「オン」と表示され、押すと「オフ」と表示されます。Bluetoothリモコンを使用しているので、ボタンにフォーカスがあるときにボタンの背景色を変更する必要があります。これらの2つの要件により、画像の使用に問題が生じます。

4

2 に答える 2

1

フォントの問題は、領域を埋めるために、フォントがアクセント領域の一番上まで、ディセンダー領域の一番下までずっと行く必要があることです。私がしたことは、CR8Software Solutions によって Type 3.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-28T14:49:06.873 に答える
0

ボタンのa を拡張しviewて設定できます。そのビュー(背景)のメソッドでは、任意のサイズ、余白などでテキストを描画できます。また、ボタンのスタイルを変更することで可能になる場合があります。backgroundonDraw()

于 2013-03-23T16:30:14.500 に答える