WEB开发网
开发学院手机开发Android 开发 Live Wallpaper动态壁纸开发 阅读

Live Wallpaper动态壁纸开发

 2011-07-01 20:50:24 来源:本站整理   
核心提示:对于Android 2.1来说Live Wallpapers动态壁纸的加入为Android桌面加入了更好的动态效果,如何开发一个Android动态桌面呢? 下面Android123给大家一个详细的步骤创建属于你自己的Live Wallpaper吧,Live Wallpaper动态壁纸开发, 1. 首先我使用Eclip

对于Android 2.1来说Live Wallpapers动态壁纸的加入为Android桌面加入了更好的动态效果。如何开发一个Android动态桌面呢? 下面Android123给大家一个详细的步骤创建属于你自己的Live Wallpaper吧。

  1. 首先我使用Eclipse创建一个标准的Android工程这里package name我们使用cn.com.android123.cwj,然后进入工程的/res/文件夹,删除layout这个文件夹,当然里面的 main.xml也会被删除的,对于Live Wallpaper来说传统的布局文件是不需要的。

 2. 类似AppWidget一样,我们可以加入动态壁纸的设置界面,我们在/res/文件夹中新建一个名为xml的文件夹,新建一个utf8编码的xml文件,名为livewallpaper.xml,内容为

  <?xml version="1.0" encoding="utf-8"?>
  <wallpaper xmlns:android="android.com/apk/res/android">http://schemas.android.com/apk/res/android"
 android:settingsActivity="cn.com.android123.cwj.LiveWallpaperSettings"
 android:thumbnail="@drawable/icon"/>

  这里我们可以看到上面的节点名为wallpaper,而设置的界面为 cn.com.android123.cwj.LiveWallpaperSettings 这个Activity,而在添加动态壁纸时显示图标为 /res/drawable/icon 这个文件,同时我们再创建一个xml文件用于LiveWallpaperSettings这个Activity的布局,我们起名为 livewallpaper_settings.xml内容为

  <?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="android.com/apk/res/android">http://schemas.android.com/apk/res/android"
 android:title="@string/livewallpaper_settings"
 android:key="livewallpaper_settings">

 <ListPreference
 android:key="livewallpaper_testpattern"
 android:title="标题"
 android:summary="简单描述"
 android:entries="@array/livewallpaper_testpattern_names"
 android:entryValues="@array/livewallpaper_testpattern_prefix"/>

 <CheckBoxPreference android:key="livewallpaper_movement"
 android:summary="动态描述"
 android:title="动态标题"
 android:summaryOn="动态测试"
 android:summaryOff="静止测试"/>
</PreferenceScreen>

 3. 创建一个名为LiveWallpaper的类作为动态壁纸的主类,从WallpaperService父类继承,这里我们可以像写标准Android服务那样开发,代码为

  public class LiveWallpaper extends WallpaperService
{

 public static final String SHARED_PREFS_NAME = "livewallpapersettings";

 @Override
 public void onCreate()
 {
 super.onCreate();
 }

 @Override
 public void onDestroy()
 {
 super.onDestroy();
 }

 @Override
 public Engine onCreateEngine()
 {
 return new TestPatternEngine();
 }

 class TestPatternEngine extends Engine implements
  SharedPreferences.OnSharedPreferenceChangeListener
 {

 private final Handler mHandler = new Handler();
 private float  mTouchX  = -1;
 private float  mTouchY  = -1;
 private final Paint  mPaint  = new Paint();
 private final Runnable mDrawPattern = new Runnable()
       {
       public void run()
       {
        drawFrame();
       }
       };
 private boolean  mVisible;
 private SharedPreferences mPreferences;

 private Rect  mRectFrame;

 private Rect[]  mColorRectangles;
 private int[]  rectColor;
 private int   mRectCount;

 // private
 private Rect  mGradientRect;
 GradientDrawable  mGradient;
 private boolean  mHorizontal = false;
 private int   mFrameCounter = 0;
 private boolean  mMotion  = true;

1 2 3 4 5 6  下一页

Tags:Live Wallpaper 动态

编辑录入:coldstar [复制链接] [打 印]
赞助商链接