私はポーカーオッズ(あなたが興味があればShufflebot)を計算するAndroidアプリを持っています。それは、タップするのに十分な大きさである必要があるカードを画面上に表示する。カードはそうのようなレイアウトでCardViewクラスによってレンダリングと宣言されています:異なるスクリーンサイズに異なるスタイルを定義することは可能ですか?
<com.shufflebot.view.CardView style="@style/CardView"
android:id="@+id/flop1"></com.shufflebot.view.CardView>
対応する「CardView」スタイルは、RES /値/のstyles.xmlで宣言されています。
<style name="CardView">
<item name="android:layout_width">40dp</item>
<item name="android:layout_height">56dp</item>
<item name="android:layout_marginRight">1dp</item>
</style>
CardViewは、与えられた寸法にペイントします。アプリがタブレット上で実行されているときには空き領域がたくさんあるので、カードを大きくしてタップするのが簡単になります。
これを行うには、代替のstyles.xmlを定義することはできますか?例えばres/values-xlarge/styles.xml(Android 3.2以前用)とres/values-sw800dp/styles.xmlを定義して、自分のスタイルの代替バージョンを定義できますか?さらに、このファイルに修正済みのスタイルが1つだけ含まれていても、Androidは他の値の元のstyles.xmlに移動することはできますか?
Eclipseでこれを試みると、これはサポートされていないことを示唆する赤い下線が表示されます。
代わりに、複数のバージョンのcards.xmlを定義することができます。 layout-xlarge/cards.xmlしかし、レイアウトの残りの部分は同じで、変更する必要のある要素のサイズにすぎないので、メンテナンスオーバーヘッドのように思えます。
だから、このような要素すべてを拡大する最良の方法はありますか?
私はさまざまなレイアウトを使うことができますが、私は同じレイアウトで別のスタイルを使用する方が好きです。特定の種類のビューのサイズ以外は、レイアウトは同じです。複数の同一のレイアウトをカット、ペースト、および維持することは、スタイルルールが行うことができるはずのもののようには思えません。 – locka
@ locka: "プロジェクトのres /ディレクトリに新しいディレクトリを作成し、 - 。の形式を使用して名前を付けます。は標準リソース名です(drawableやレイアウトなど)。これは、ドキュメントで 'layout'と' drawable'を例にしているだけで、 'values'でも使えるということです。 –
unholysampler
私はそれが欲しかったが、それは私の実験が行く限り表示されません。 – locka