我正在使用以下代码:
Public void xyz(View v) {
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case 0:
data.getDataString();
if(resultCode == RESULT_OK){
try {
Bitmap bitmap = MediaStore.Images.Media.getBitmap(_activity.getContentResolver(), data.getDataString());
RelativeLayout bg = (RelativeLayout) findViewById(R.id.might);
Drawable drawable = new BitmapDrawable(getResources(), bitmap);
bg.setBackgroundDrawable(drawable);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch blocke.printStackTrace();
} catch(IOException e) {
// TODO Auto-generated catch blocke.printStackTrace();
}
}
break;
}
}
问题:
它仅为一个活动设置背景。
在onDestroy()
方法之后,它会在重新启动时设置默认背景。
答案 0 :(得分:2)
您可以使用一个MainActivity。然后,使用片段作为屏幕。将您的颜色或背景绘制为MainActivity的布局。但是,请关注所有片段的布局:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
前两个00
用于使背景透明。
答案 1 :(得分:1)
将图像保存到内部存储器(放入onactivityresult)
FileOutputStream outputStream = null;
try {
outputStream = openFileOutput("filename.jpg", Context.MODE_PRIVATE);
// Use the compress method on the BitMap object to write image to the OutputStream
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
//加载图片并设置为背景(onsatrtactivity)
try {
FileInputStream l = openFileInput("filename.jpg");
Bitmap A = BitmapFactory.decodeStream(l);
LinearLayout bg = (LinearLayout) findViewById(R.id.layoutid);
Drawable drawable = new BitmapDrawable(getResources(), A);
bg.setBackgroundDrawable(drawable);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
感谢Marcin Jedynak !!!
答案 2 :(得分:0)
Rupinderjeet asnwer是对的。它可以让你在默认背景下工作。
但这是一种简单易行的方法。
在style.xml
values
样式
<style name="DefaultBackgroundTheme" parent="Base.Theme.AppCompat.Light">
<item name="android:windowBackground">@drawable/splash_bitmap</item>
</style>
按应用主题更改Base.Theme.AppCompat.Light
您也可以将color
,bitmaps
或drawables
放在此处。
并在您的清单类中更改您的主题
<activity
android:name="yourActivityName"
android:theme="@style/DefaultBackgroundTheme" />
希望这会对你有所帮助。