我能否以某种方式将布局的背景图像设置为与壁纸相同,但仅从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
来做到这一点。
谢谢。
答案 0 :(得分:1)
创建一个新类并从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);
}
}
请注意,如果在设备上设置了动态壁纸,您将获得黑色背景
答案 1 :(得分:0)
您可以覆盖样式并在清单文件中导入该样式...
<style name="Background" parent="@android:style/Theme.NoTitleBar">
<item name="android:background">@android:color/black</item>
or
<item name="android:background">@drawable/attachment1</item>
</style>
现在在清单文件
上<application android:theme="@style/Background"/>
干杯。