(Android)フルスクリーンのアナログ時計アプリをライブ壁紙に適応させる作業をしています。このアプリはImageView
、時、分、秒針、およびの3つを別々に使用しRotateAnimation
ます。
ライブ壁紙でImageViewを使用する方法を探していました。これとこれmeasure()
は、これがとで可能であることを示していますlayout()
が、私はそれを使用する方法を本当に知りません。たとえば、以下のコードを使用してにロードclock_background.png
しImageView
ます。
public class MyWallpaperService extends WallpaperService {
@Override
public Engine onCreateEngine() {
return new MyWallpaperEngine();
}
....
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
mContext = getBaseContext();
backgroundImage = new ImageView(mContext);
backgroundImage.setImageDrawable(mContext.getResources().getDrawable(R.drawable.clock_background));
}
}
後で私は持っています:
backgroundImage.measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
backgroundImage.layout(0, 0, 150, 150);
上記のコードがclock_background.png
画面の左上隅に表示されると思います。OnSurfaceCreated
上記の2行をとに入れてみましたOnSurfaceChanged
。残念ながら、それは機能しません。私が理解しているように、ライブ壁紙はSurface(SurfaceViewではなく)を提供し、そこからキャンバスを取得してそこに物を描くことができます。私はAndroidで非常に新しいことをお詫びします:私はそれをすべて間違っていますか?私はただいじりたくない、drawBitmap
または好きではありません、そして私はとにかくバッテリーを気にしません。どんな助けでも大歓迎です。どうもありがとうございます!