:AndroidでXMLの変数を使用できますか?代わりに、それぞれのTextViewのために、この次の行を使用しての
android:textSize="40sp"
は、私は変数に40spを置き換えることができますか?
私はSPユニットをユーザー定義の設定として使用することをお勧めしました。これはベストプラクティスですか?
:AndroidでXMLの変数を使用できますか?代わりに、それぞれのTextViewのために、この次の行を使用しての
android:textSize="40sp"
は、私は変数に40spを置き換えることができますか?
私はSPユニットをユーザー定義の設定として使用することをお勧めしました。これはベストプラクティスですか?
私は40spを変数に置き換えることができますか?
あなたはa dimension resource(例えば、android:textSize="@dimen/someSize"
)を使用する、または(AlexNの回答ごとに)これを行い、スタイルを使用する、またはsetTextSize()
を経由して、実行時にサイズを設定することができます。
SP単位は、ユーザー定義の設定に従って使用することをお勧めします。これはベストプラクティスですか?
Androidの新しいバージョンでは、ユーザーは設定アプリケーションで基本フォントサイズを変更できます。ユニットにsp
を使用すると、フォントサイズが基準フォントサイズに沿って拡大/縮小されます。他のユニット(例:dp
)を使用すると、ユーザーの設定にかかわらずフォントサイズは変わりません。 sp
の使用方法が「ベストプラクティス」であるかどうかは言えません。フォントサイズを変更することができない場合があることは間違いありません。しかし、デフォルトでは、おそらくsp
が適切な出発点です。
私が知っているように、SPを使用することは、テキストサイズにとっては本当に良い習慣です。 あなたの最初の質問によると、私は変数を使うことはできないと思いますが、よりよい方法があります。それをチェックアウト - http://developer.android.com/guide/topics/ui/themes.html
をあなたのスタイルを定義しますのであれば、あなたは<TextView android:id = "@+id/myId" style = "@style/myStyle"/>
のようなXMLであなたのビューを宣言することができ、このスタイルは、あなたがその画面上にtextViewsに設定したいすべてのパラメータをincapsulateます。
いいえ、XMLファイルでコードベースの変数を使用することはできません。ただし、これにスタイルを使用することはできます。
例:
<style name="MyTvStyle">
<item name="android:textSize">40sp</item>
</style>
次に、このようにそれを適用する:
<TextView style="@style/MyTvStyle" ... />
コードベースのアプローチも可能です。 TextViewsのandroid:id
属性が定義されている場合は、コードでfindViewById
メソッドを使用してそれらを取得できます。
例:
int[] id_array = {
R.id.textview1, R.id.textview2, R.id.textview3 //Put all the id's of your textviews here
}
for(int i : id_array) { //Loop trough all the id's and retrieve the Textview associated with it.
TextView textview = (TextView)findViewById(i);
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP,40); //Set the text size to 40sp
}
そして、はい、それは通常のピクセル値の代わりにsp
を使用することが常に良いでしょう。 sp
はデバイスのサイズとユーザー設定に合わせて調整されます。
ありがとうございます。私はスタイルについて知りませんでした。 – tomofv