2012-02-08 5 views
2

私はポーカーオッズ(あなたが興味があれば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しかし、レイアウトの残りの部分は同じで、変更する必要のある要素のサイズにすぎないので、メンテナンスオーバーヘッドのように思えます。

だから、このような要素すべてを拡大する最良の方法はありますか?

答えて

2

私は、何か他のものを見ている間に、自分自身を補充としてほとんど見つけました。

<?xml version="1.0" encoding="utf-8"?> 
<com.shufflebot.view.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/CardViewLarge" > 
</com.shufflebot.view.CardView> 

<?xml version="1.0" encoding="utf-8"?> 
<com.shufflebot.view.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    style="@style/CardView" > 
</com.shufflebot.view.CardView> 

その後、私は交換するインスタンスの:私はつまり、私はそれが適用される各異なるレイアウトでcard.xmlを作成し、異なるscreensizesに応じて異なるスタイルを持っている要素を分離しました文と私のレイアウトで:カードは異なっていたが、それは私にとってはそうではありません、ID以外の属性を持っていた場合

<include android:id="@+id/river" layout="@layout/card" /> 

これは明らかに動作しないでしょう。これは同じレイアウトのレイアウトが異なる画面サイズに対応できることを意味します。

1

Android Dev Guideには、supporting multiple screensに焦点を当てたセクションがあります。

それはとしていくつかのオプションを一覧表示する:明示的にアプリケーションが

  • をサポートしていますサイズどの画面マニフェストで宣言

    • 異なるスクリーンのためのさまざまなレイアウトを提供
    • のサイズの異なる画面密度
    • に異なる描画可能ビットマップを提供
  • +0

    私はさまざまなレイアウトを使うことができますが、私は同じレイアウトで別のスタイルを使用する方が好きです。特定の種類のビューのサイズ以外は、レイアウトは同じです。複数の同一のレイアウトをカット、ペースト、および維持することは、スタイルルールが行うことができるはずのもののようには思えません。 – locka

    +0

    @ locka: "プロジェクトのres /ディレクトリに新しいディレクトリを作成し、 - の形式を使用して名前を付けます。は標準リソース名です(drawableやレイアウトなど)。これは、ドキュメントで 'layout'と' drawable'を例にしているだけで、 'values'でも使えるということです。 – unholysampler

    +0

    私はそれが欲しかったが、それは私の実験が行く限り表示されません。 – locka

    関連する問題