2011-12-21 14 views
0

Android 3.2以降、この奇妙な問題があります。正確な画面サイズのAndroidリソースフォルダ

それは再現するのは非常に簡単です:

  1. 空のプロジェクトを作成します。
  2. 値を480x320/resourceディレクトリに追加します。
  3. この新しいフォルダ内の一部の文字列を変更します。 @ string/helloは、値/ディレクトリの中のデフォルトのものとは異なります。

今、3.1以降のAndroid搭載端末とエミュレータでは、すべてが期待通りです。しかし、3.2以上(4.x Galaxy Nexusとエミュレータを含む)では、値/フォルダの代わりに480x320の値が使用されます!!

「画面を拡大/拡大する」アイコンの互換性は私にはわかりません。 AndroidManifest.xmlでscreens-useタグとuse-sdkタグを変更しようとしましたが、この問題は修正されません。

私の質問です:なぜこれが起こっているのですか、それを修正するためのアドバイスは何ですか?

PSのように、Androidバージョン3.1から3.2へのマイナーチェンジが古いアプリを壊しているような理由は本当にありません。

ありがとうございます!

+0

ここをクリックしてください:http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts – Jave

+0

Androidで「* -480x320 /」のリソースを使用したことはありませんか? ? – myself

答えて

0

興味がある場合:アドバイスは基本的には、値480x320などの固定解像度ベースのリソースフォルダを使用しないことです。

0

私は、3.2でアルゴリズムが変更されたとします。thisアルゴリズム。修飾子を付けて別の値のフォルダを作成してみましょう。

+0

このような迅速なサポートのおかげでありがとう! 古いスタイルの(たとえば、値 - 480x320)フォルダを削除し、新しいスタイル(たとえば値-sw320dp)のフォルダに置き換えると、問題は新しい3.2+プラットフォームで修正されます。しかし同時に、レイアウトは3.1とそれ以下のAndroidsに壊れます。新しい3.2スタイルの接尾辞を「理解」していないからです... – myself

+0

新しい接尾辞と古い接尾辞の両方のフォルダがあるとどうなりますか? – Jin35

+0

一般に、新しいスタイルのフォルダは完全に無視され、480x320フォルダ(存在する場合)に置き換えられます。しかし、私は古いスタイルと新しいスタイルの様々な組み合わせを試していました。有用なものが見つかりました.WVGA800/240dpiエミュレータではsw300dpという値を宣言できます。このフォルダは、値480x320からのリソースが無視されるようにします。値-sw300dpに@ string/helloを指定すると、デフォルト値/ディレクトリからの@文字列/ helloが使用されます。この修正は本当に面倒なので、私はより良いものを探しています。 – myself

関連する問題