(机器人)
我正在努力使全屏模拟时钟应用程序适应动态壁纸。
该应用程序使用三个单独的ImageView
表示小时,分钟,秒针和RotateAnimation
。
我一直在寻找一种在动态壁纸中使用ImageView的方法。 this和this表示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
和OnSurfaceChanged
中。不幸的是它不起作用。
据我所知,动态壁纸提供了一个Surface(而不是SurfaceView),从中可以获得
画布并画上它的东西。
我为Android上的新手道歉:我做错了吗?我只是不想
混乱drawBitmap
或喜欢,我也不关心电池。
任何帮助都非常感谢。非常感谢你!
答案 0 :(得分:0)
我简短,是的,你做错了。 使用提供的画布及其drawX()方法