我可以以某种方式将布局的背景图像设置为与墙纸相同,但只能通过AndroidManifest设置吗?我知道我可以使用以下代码以编程方式使其:

final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
        final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
        RelativeLayout rl = (RelativeLayout) findViewById(R.id.main);//Substitute with your layout
        rl.setBackground(wallpaperDrawable);


但是我要重复一遍,我需要通过AndroidManifetst来完成。
谢谢。

最佳答案

创建一个新类,并从AppCompatAcitvity或'Activity'扩展它。重写其oncreate方法,如下所示。

public class myWallpaperActivity extends Activity{

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
        final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
        View r1 = findViewById(android.R.id.content);
        r1.setBackground(wallpaperDrawable);
    }
}


现在,您可以扩展该课程中的所有活动。

public class MainActivity extends myWallpaperActivity

如果您需要改进它并在更改墙纸时加载新墙纸并且活动性没有被破坏,则可以覆盖onResume方法而不是onCreate方法,如下所示

public class myWallpaperActivity extends Activity{


    @Override
    protected void onResume() {
        super.onResume();
        final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
        final Drawable wallpaperDrawable = wallpaperManager.getDrawable();
        View r1 = findViewById(android.R.id.content);
        r1.setBackground(wallpaperDrawable);
    }
}


请注意,如果在设备上设置了动态壁纸,则会得到黑色背景

关于android - 使用AndroidManifest将背景设置为墙纸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35969142/

10-10 09:50