Android 2.1用のスクロール可能なライブ壁紙の作成方法(パート1、最後の1つでもあります)

みなさんこんにちは。 今日は、Android 2.1用のライブ壁紙を作成するトリックと、画像をスクロールする機能を共有したいと思います。
遅滞なく環境を決定し、Eclipseでコーディングを開始し、Android SDKとAVD Managerエミュレーターでテストし、対話型の電話に電話をかけることをお勧めします(電話をかけない、電話をかけることができるGoogleMaps経由のクイックナビゲーション)電話ナビゲーター。 次のイテレーションの後、コードネームがfroyoになった後、グーグルが2Dノートブックをマップ上に展開して作成することを考えるのは誰でしょうか?
初心者向けのアプリケーションの作成について最初から説明します。 ADTとEclipseだけでなく、 Android JDKも必要です。 Eclipse用のADTを持っていなかったプラグインのインストールの難しさ、そしてあなたはそれを持っていません。 IDEを再起動すると、「Android SDK and AVD Manager」がWindowsタブに表示されます。 API Level 7、つまりAndroid 2.1またはAPI Level 8、Android 2.2を使用して新しいデバイスエミュレーターを作成します。ただし、以前のバージョンにはライブ壁紙機能がまったくなかったため、それ以下ではありません。
このアプリケーションでは、640x533のjpgサイズが画像として使用されます。 画面全体をカバーすることは不可能です。そのような場合、スクロールが役立ちます。 メインのホーム画面のフレームワーク内で、例えば、隣接するものへの切り替えの両方で整理する水平スクロールのみに焦点を当てることを提案します。 ちなみに、テスト済みのデバイスHTC Desireでは、7つのホームスクリーンがあります。そのため、フロントスクリーンのみに限定することはおそらく意味がありません。 もちろん、同じ画像でもデバイスの密度が240、160、120の場合は外観が異なることを理解しているため、aplikuがこれらのパラメーターを適切に決定できない場合、または自分で設定しない場合は、画面の対角線と密度を事前に知ることが重要です特定のモデルを目指すタスク。 どちらの場合も、物理サイズと表示サイズの関係は次の式を使用して計算されます。
realScreenWidht = screenWidth /(密度/ 160)
realScreenHeight = screenHeight /(密度/ 160)、
つまり、WVGA寸法(480x800)と3.3 "-4.0"の対角線(高密度、hdpi、240)を備えたHTC Desireの場合、画面全体の高さを占める必要な画像のサイズの計算は次のようになります。
密度/ 160 = 1.5
realScreenHeight = 800 / 1.5 = 533
画像サイズの幅は2ホームスクリーンであるため、
realScreenWidht = 480 * 2 / 1.5 = 640
つまり、理論と環境を理解したので、Build Target Target for Android 2.1を選択して、ScrollableLiveWallpaperというAndroidプロジェクトを作成することを提案します。 アプリケーション名は、ScrollableLiveWallpaper、パッケージ-com.scrollable.live.wallpaperとして設定されます。 プロジェクトの名前(この場合)は、接尾辞付き、つまりScrollableLiveWallpaperActivityが、暗黙の命名規則に従って、Activityの名前フィールドに入力されます。
次に、coco(アクティビティ)を蝶(ライブ壁紙)に変換します。このためにAndroidManifest.xmlを開き、ScrollableLiveWallpaperActivity.javaを完全に忘れます。 [アプリケーション]タブでは、アプリケーションノードフィールドでScrollableLiveWallpaperActivityクラスが指定されていることを確認し、すべての属性とシステムイベントフィルターと共に削除します。 ライブ壁紙は、簡単に作成されるサービスです。
新しいScrollableLiveWallpaperServiceクラスでは、WallpaperServiceを継承します。 必要な実装メソッドは、ScrollableLWEngineエンジンを起動するためにのみ必要です

パブリッククラスScrollableLiveWallpaperServiceはWallpaperServiceを拡張します{
	 public static final String SHARED_PREFS_NAME = "settings";
	
	 @Override
	 public Engine onCreateEngine(){
		新しいScrollableLWEngine()を返します。
	 }
	
	クラスScrollableLWEngineはEngineの実装OnSharedPreferenceChangeListenerを拡張します{
		 @Override
		 public void onSharedPreferenceChanged(SharedPreferences arg0、String arg1){
		 }
	 }
 }

AndroidManifest.xmlに戻って、ノードにサービスを追加しましょう。
1

フィルター
2

設定画面の作成に必要なメタデータ
3

resフォルダーで、xml / scrollable.xmlを作成します。
 <?xml version = "1.0" encoding = "utf-8"?>
 <wallpaper xmlns:android = "http://schemas.android.com/apk/res/android"
	 android:thumbnail = "@ drawable / icon"
	 android:description = "@ string / app_name"
	 android:settingsActivity = "com.scrollable.live.wallpaper.preferences.ScrollablePreferences" />

パッケージcom.scrollable.live.wallpaper.preferencesにScrollablePreferencesクラスを作成します。
パブリッククラスScrollablePreferencesはPreferenceActivityの実装を拡張します 
                    OnSharedPreferenceChangeListener {

	 @Override
	 protected void onCreate(バンドルつらら){
		 super.onCreate(つらら);
		 getPreferenceManager()。
                        setSharedPreferencesName(ScrollableLiveWallpaperService.SHARED_PREFS_NAME); 
  addPreferencesFromResource(R.xml.preferences); 
		 getPreferenceManager()。
                        getSharedPreferences()。registerOnSharedPreferenceChangeListener(this);
	 }

	 @Override
	 public void onSharedPreferenceChanged(SharedPreferences sharedPreferences、String key){
	 }
	
	 @Override
	 protected void onResume(){
		 super.onResume();
	 }

	 @Override
	 protected void onDestroy(){
		 getPreferenceManager()。
                        getSharedPreferences()。unregisterOnSharedPreferenceChangeListener(this);
		 super.onDestroy();
	 }
 }

設定画面のアクティビティはほとんどサービスに固定されています。 res / xmlにpreferences.xmlを作成するために残ります:
 <PreferenceScreen xmlns:android = "http://schemas.android.com/apk/res/android"
         android:title = "@ string / settings"
         android:key = "Scrollable_settings">
     <ListPreference
             android:key = "key_speed_scroll"
             android:title = "@ string / settings_scroll_speed_title"
             android:summary = "@ string / settings_scroll_speed_summary"
             android:entries = "@ array / speed_scroll_keynames"
             android:entryValues = "@ array / speed_scroll_keyvalues" />
 </ PreferenceScreen>

strings.xmlに追加します
	 <string name = "settings">設定</ string>
	 <string name = "settings_scroll_speed_title">スクロール速度の選択</ string>
	 <string name = "settings_scroll_speed_summary">スクロールの速度を選択</ string>

設定画面には、7つのラジオボタン要素の垂直リストが含まれます。各要素の名前と値は、values / array.xmlというリソースに保存されます。
  <?xml version = "1.0" encoding = "utf-8"?>
 <リソースxmlns:xliff = "urn:oasis:names:tc:xliff:document:1.2">
     <string-array name = "speed_scroll_keynames">
         <item>「最初」</ item>
         <item> "Second" </ item>
         <item>「サード」</ item>
         <item>「4番目」</ item>
         <item> "Fifs" </ item>
         <item>「6番目」</ item>
         <item>「7番目」</ item>
     </ string-array>

     <string-array name = "speed_scroll_keyvalues">
         <item> "1" </ item>
         <item> "2" </ item>
         <item> "3" </ item>
         <item> "4" </ item>
         <item> "5" </ item>
         <item> "6" </ item>
         <item> "7" </ item>
     </ string-array>
 </ resources>

ライブ壁紙を開始する前に、プリセットのクラスをアプリケーションノードのリストに追加します。
4
起動する準備ができた壁紙

Source: https://habr.com/ru/post/J103383/


All Articles