如何使用 android studio 创建平板电脑背景
how to create a tablet background using android studio
我一直在关注这个教程:
Page。
我遇到了很多错误。
您可以通过在 GitHub
上分享代码来帮助我吗?
您也可以 post 在 Stack Overflow
上回答。
这是我的 Gif
我在我的 java 文件中使用了它:
package com.example.background;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.os.Handler;
import android.service.wallpaper.WallpaperService;
import android.util.Log;
import android.view.SurfaceHolder;
import java.io.IOException;
public class GIFWallpaperEngine extends WallpaperService{
private final int frameDuration = 20;
private SurfaceHolder holder;
private Movie movie;
private boolean visible;
private Handler handler;
public GIFWallpaperEngine(Movie movie) {
this.movie = movie;
handler = new Handler();
}
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
this.holder = surfaceHolder;
}
private Runnable drawGIF = new Runnable() {
public void run() {
draw();
}
};
private void draw() {
if (visible) {
Canvas canvas = holder.lockCanvas();
canvas.save();
// Adjust size and position so that
// the image looks good on your screen
canvas.scale(3f, 3f);
movie.draw(canvas, -100, 0);
canvas.restore();
holder.unlockCanvasAndPost(canvas);
movie.setTime((int) (System.currentTimeMillis() % movie.duration()));
handler.removeCallbacks(drawGIF);
handler.postDelayed(drawGIF, frameDuration);
}
}
@Override
public void onVisibilityChanged(boolean visible) {
this.visible = visible;
if (visible) {
handler.post(drawGIF);
} else {
handler.removeCallbacks(drawGIF);
}
}
@Override
public void onDestroy() {
super.onDestroy();
handler.removeCallbacks(drawGIF);
}
@Override
public Engine onCreateEngine() {
try {
Movie movie = Movie.decodeStream(
getResources().getAssets().open("wolverine.gif"));
return new Engine(movie);
}catch(IOException e){
Log.d("GIF", "Could not load asset");
return null;
}
}
}
是否有任何错误,因为覆盖显示错误。
是这样的:不需要重写,因为无论 super 做什么都是方法。
好吧,这就是我的解决方案GitLink
当您尝试 运行 应用程序时遇到的问题的解决方案,首先单击 app
,然后单击 Edit Configurations
现在,在 Launch Options
select NOTHING:
最后一步,按OK
:
最后,您可以 运行 您的应用程序了。试试吧!
我一直在关注这个教程:
Page。
我遇到了很多错误。
您可以通过在 GitHub
上分享代码来帮助我吗?
您也可以 post 在 Stack Overflow
上回答。
这是我的 Gif
我在我的 java 文件中使用了它:
package com.example.background;
import android.graphics.Canvas;
import android.graphics.Movie;
import android.os.Handler;
import android.service.wallpaper.WallpaperService;
import android.util.Log;
import android.view.SurfaceHolder;
import java.io.IOException;
public class GIFWallpaperEngine extends WallpaperService{
private final int frameDuration = 20;
private SurfaceHolder holder;
private Movie movie;
private boolean visible;
private Handler handler;
public GIFWallpaperEngine(Movie movie) {
this.movie = movie;
handler = new Handler();
}
public void onCreate(SurfaceHolder surfaceHolder) {
super.onCreate(surfaceHolder);
this.holder = surfaceHolder;
}
private Runnable drawGIF = new Runnable() {
public void run() {
draw();
}
};
private void draw() {
if (visible) {
Canvas canvas = holder.lockCanvas();
canvas.save();
// Adjust size and position so that
// the image looks good on your screen
canvas.scale(3f, 3f);
movie.draw(canvas, -100, 0);
canvas.restore();
holder.unlockCanvasAndPost(canvas);
movie.setTime((int) (System.currentTimeMillis() % movie.duration()));
handler.removeCallbacks(drawGIF);
handler.postDelayed(drawGIF, frameDuration);
}
}
@Override
public void onVisibilityChanged(boolean visible) {
this.visible = visible;
if (visible) {
handler.post(drawGIF);
} else {
handler.removeCallbacks(drawGIF);
}
}
@Override
public void onDestroy() {
super.onDestroy();
handler.removeCallbacks(drawGIF);
}
@Override
public Engine onCreateEngine() {
try {
Movie movie = Movie.decodeStream(
getResources().getAssets().open("wolverine.gif"));
return new Engine(movie);
}catch(IOException e){
Log.d("GIF", "Could not load asset");
return null;
}
}
}
是否有任何错误,因为覆盖显示错误。 是这样的:不需要重写,因为无论 super 做什么都是方法。
好吧,这就是我的解决方案GitLink
当您尝试 运行 应用程序时遇到的问题的解决方案,首先单击 app
,然后单击 Edit Configurations
现在,在 Launch Options
select NOTHING:
最后一步,按OK
:
最后,您可以 运行 您的应用程序了。试试吧!