2011-12-17 7 views
0

私は、1つのAPKでさまざまなプラットフォームのバージョンをサポートする必要があるAndroidアプリケーションを開発しています。以前は、Androidのリリース間でスタイルが若干変更されていましたが、レイアウトを破ることはありませんでした。システムのデフォルトのスタイルは大きく変化し、新たなウィジェットの透明な背景は、それが不可能ないくつかのカラースキームのテキストを読むために作るたアンドロイド4.0(アイスクリームサンドイッチ)のリリースでAndroidプラットフォームのデフォルトスタイルの処理

のAndroid 2.3.3

Android 2.3.3 visual

アンドロイド4.0(まったく同じAPK)

Android 4.0 visual

4.0のレイアウトは背景が透明なので、黒い文字は見えません。

基本的なアンドロイドウィジェットごとにカスタムスタイルを作成せずにこれらのデフォルトスタイルの変更を簡単に処理できる方法はありますか? Android 4.0で古いシステムテーマをリクエストすることは可能ですか?私はシステムのバージョンを検出し、実行時にフォントの色を変更する必要がないようにしようとしています。

答えて

0

よく古いテーマがあります。あなたはアプリケーションのテーマを設定していますか?そうでない場合は、デバイスのデフォルトテーマに移動します。

Theme.Black、Theme.Lightなどのように明示的にテーマを設定してみてください。テーマをベース/親テーマとして使用し、必要に応じて特定のスタイルを追加したり、いくつかのデフォルトを上書きすることができます。

マニフェストファイルのアクティビティのテーマを設定できます。

その他のオプション:

あなたはホロのテーマをサポートしたい場合は、最初のホロと別の非ホロのために一度、あなたの親テーマを選択し、

if(Build.VERSION.SDK_INT > 10) 
context.setTheme(<res_id_of_holo_them); // or dont any thing if default theme works for u 
else 
context.setTheme(<other_theme>); 

を経由してコード内の適切なテーマを選択これ以前に電話するsetContentView

+0

設定Theme.Blackは2.3.3スタイルに戻りますが、新しいアクションバーのヘッダー/メニューなどのICS固有の機能も削除されます。 –

関連する問題