10

アイスクリームサンドイッチは多くの新しいUIデザイン要素を導入しましたが、市場浸透率はまだ4%程度です。アプリケーションの将来性を保証し、Honeycomb / Ice Cream Sandwichで導入されたアクションバー、配色などのデザイン要素の一部を利用したい場合は、下位互換性をある程度維持するための最良の方法は何でしょうか。互換性?

4

3 に答える 3

10

@Ollie Cに同意しますが、Actionbar Sherlockライブラリを使用する以外に、追加するオプションは他にもあると思います。これは、ABSコミュニティに積極的に参加しており、幻想的に本当に便利で、すべてのUIアセットが含まれていることに同意します。必要。

APIレベルを通してUIコンポーネントの優雅な劣化を見ることができます。したがって、たとえば:

フォルダに作成して、values次のようにスタイルを設定できます

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.Light.NoTitleBar">
        <!-- Any customizations for your app running on pre-3.0 devices here -->
    </style>
</resources> 

次に、Android 3.0以降のデバイスの場合、values-v11フォルダーを作成します。

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.Holo.Light">
        <!-- Any customizations for your app running on 3.0+ devices here -->
    </style>
</resources>

また、4.0以降のデバイスの場合は、次を作成しますvalues-v14

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="MyAppTheme" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
        <!-- Any customizations for your app running on 4.0+ devices here -->
    </style>
</resources>

REF:http : //android-developers.blogspot.co.uk/2012/01/holo-everywhere.html、Holo.Lightテーマを使用して、ハニカム前のデバイスで「Light」にフォールバックする方法は

このプロジェクトもあります:https ://github.com/ChristopheVersieux/HoloEverywhereそれはホロテーマを持ち込もうとしています。

ついに; Googleは、Android OSから直接参照するのではなく、下位互換性の問題を解決するためにSDKのUIコンポーネントを含めることを開発者に推奨しています。これはあなたの質問ではありませんが、ある程度の一貫性を提供するのに役立ちます。

于 2012-04-10T19:12:32.360 に答える
3

これは非常に幅広いトピックです。答えは、使用しようとしている特定の要素によって異なります。

-ActionBarの場合:以前のバージョンでActionBarが必要な場合、ActionBarSherlockは、Androidサポートライブラリから拡張された人気のある無料のライブラリです。

-配色/テーマの場合:このSOスレッドで説明されているように、res / values/styles.xmlおよびres/values-v11 / styles.xml(たとえば、「myStyle」と呼ばれる)を作成し、スタイルごとに関連する親。V11の場合はおそらく「Theme.Holo」、もう一方の場合はおそらく「Theme.Dark」になります。テーマに必要なカスタマイズを追加します。マニフェストでそのカスタムテーマを参照すると、デバイスのプラットフォームバージョンに応じて適切なテーマが選択されます(values-v11フォルダーはHoneycomb以降に使用され、もう1つはGingerbread以下に使用されます)

-他のプラットフォーム機能については、 Android開発者ブログで説明されているように、プラットフォーム固有の機能を個別のクラスにカプセル化し、Build.VERSION.SDKの値に基づいてそれらにアクセスできます。

于 2012-04-10T19:01:18.490 に答える
1

http://www.actionbarsherlock.com

この(無料の)ライブラリは素晴らしく、以前のAndroidバージョンで探しているものを提供します。

于 2012-04-10T18:46:17.227 に答える