Androidプログラミングの動的壁紙の実例分析


本論文の例はAndroidプログラミングの動的壁紙である。皆さんに参考にしてあげます。具体的には以下の通りです。
Android 2.1のバージョンから動的な壁紙の概念を導入しました。androidを知っている人はきっとよく知っています。ここで一つの動画の壁紙を説明します。どうやって形成されますか?
まず、ダイナミックデスクトップのダイナミックな動きは、このコンポーネントがリアルタイムで変化していることを表しています。つまり、バックグラウンドが絶えずこのコンポーネントを更新しています。バックグランドのセットを連想してまず思いついたのがサービスです。コードの角度から見れば、やはりそうです。各動的デスクトップはWallpaperServiceから継承されており、その中で必ず実現される抽象的な方法one CreateEngineは、Engineオブジェクトに戻ります。実際には、すべての描画と更新はengineによって行われます。serviceはengineに提供される部分です。
例えば、ダイナミックな壁紙を設定している時にプレビューがあります。この時に、プレビューのengineを起動して描画して更新します。壁紙を設置してから、デスクトップ全体を塗りつぶすengineを起動します。だから、動的壁紙のポイントはengineにあります。ここで紹介します。
ダイナミックな壁紙を作成します。
最初のステップは、我々のWallpaperServiceクラスを作成し、その中でengineクラスを作成し、engineはWallpaperServiceの内部クラスです。その中にengineの中で肝心な方法はあります。
参照
onCreate(SurfaceHolder surfaceHolder)
surfaceholderがあれば、canvasの対象を得ることができます。canvasがあれば、絵を描くことができます。
参照
onOffsetsChanged(float xOffset, float yOffset, float xOffsetStep,float yOffsetStep, int xPixelOffset, int yPixelOffset)
スクリーンをスライドさせる時にこの方法を起動します。
xOffsetはスクリーン番号のパーセンテージを判断するために使用できます。例えば、携帯電話に5スクリーンがあったら、第一スクリーンはここで0.000です。第二スクリーンは0.2000第三スクリーンは0.4000です。
xOffset Stepは、文字通りステップと同じ画面分割数に関係があると理解できます。スクリーン分割数が5なら、毎回xOffset Stepに進みます。
xPixelOffsetは実際のピクセルの移動距離です。つまり、どれぐらいのピクセルを移動しましたか?不思議なことに、ここでは左右のピクセルポイントのoffsetがマイナスです。
参照
public void onVisibilityChanged(boolean visible)
ダイナミックな壁紙の視認性が変化した時にこの方法を起動します。例えばデスクトップでは、ダイナミックな壁紙のvisibilityがtrueです。プログラムを実行すると、ダイナミックな壁紙のvisibilityがfalseになります。ここではよく分かります。
参照
public Bundle onCommand(String action, int x, int y, int z, Bundle extras, boolean resultRequested)
イベントを傍受することができます。クリックした時にこの方法を触発します。actionはandroid.wallpaper.tapです。xは横軸を記録しました。yは縦軸を記録しました。zの作用は未知です。3 dデスクトップのために予約したのかもしれません。実験したことがありません。zは普通0です。
いくつかの重要なライフサイクルの方法があります。activityと似ています。多くは言いません。
一つのアプリを動画の壁紙として定義するには、まずAndroid Manifest.xmlで指定してください。先に述べたように、動画の壁紙はandroid 2.1からサポートされていますので、追加が必要です。
参照
まだシステムについて説明していますので、これはダイナミックな壁紙です。
その他に、私達はサービスを運行していますので、サービスの配置も必要です。
参照

<service android:name="LiveWallService" android:label="My_live _wallpaper" android:permission="android.permission.BIND_WALLPAPER" > 
  <intent-filter> 
   <action android:name="android.service.wallpaper.WallpaperService" /> 
  </intent-filter> 
  <meta-data android:name="android.service.wallpaper" android:resource="@xml/livepaper"/> 
</service>
重要な部分はまず権限android:permission=「android.permission.BIND_」です。WALLPAPER"
次にserviceはactionに応答する必要があります。
android:name="android.service.wallpaper.WallpaperService
あとはプロファイルです。
次にプロファイルを受信します。まず、resフォルダの下にxmlディレクトリを作成するのは、appwidgetを書くのと同じです。
カタログの下でxmlファイルを作成します。

<?xml version="1.0" encoding="utf-8"?> 
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android" 
 android:settingsActivity="LiveWallPreference" 
 android:thumbnail="@drawable/ic_launcher" 
 android:description="@string/wallpaper_description" 
 /> 

wallpaperはシステムがこのように書くことを要求するので、名前空間を持ちます。
参照
android:settingsActivity="LiveWallPreference"
動的壁紙を配置するPreferenceActivityを指定しますが、このPreferenceActivityはAndroid Manifest.xmlに登録する必要がありますが、一般のactivityと同じです。ダイナミック壁紙の設定ボタンをクリックすると、このactivityに案内します。欠かせません。設定をクリックするとエラーが発生します。
参照

android:thumbnail="@drawable/ic_launcher" 
android:description="@string/wallpaper_description" 

最初のアイコンは動的な壁紙リストのアイコンに対応しています。2番目のdescriptionはアイコンの右側に作成された動的な壁紙の名前です。
これでダイナミック壁紙のフレームが完成しました。続いてwallpaperservice類に更新機構を加入するだけで、ダイナミックな内容を加えて、ダイナミックなデスクトップが完成します。
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。