gpt4 book ai didi

android - 如何从另一个 Activity 更改布局背景?

转载 作者:行者123 更新时间:2023-11-30 00:56:40 24 4
gpt4 key购买 nike

我想在用户单击按钮时更改布局背景。根据我的项目,我有一个 MainActivity,在这个 MainActivity 中我想更改布局背景和一个 Gridview Activity ,在这个 Activity 中我有背景图像和一个全屏 Activity 显示 gridview 选择的特定图像,在这个全屏 Activity 中,我有一个名为“设置背景”的按钮来设置布局的背景。

这是我的全屏 Activity

public class FullScreenImage extends Activity{


Button setWallpaper;
Context mContext;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_fullscreen_image);


setWallpaper = (Button)findViewById(R.id.setWall);

mContext = FullScreenImage.this;

//Get image fro Image adapter
final Bundle bdl = getIntent().getExtras();
final int imageRes = bdl.getInt("imageID");
final ImageView image = (ImageView) findViewById(R.id.imgDisplay);
image.setImageResource(imageRes);

setWallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

//What is the code for changing background

}
});
}
}

GridView Activity

public class ChangeWallpaper extends Activity {

GridView gridImage;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.change_theme);

gridImage = (GridView)findViewById(R.id.gridImage);
gridImage.setAdapter(new ImageAdapter2(this));
}
}

这是我的 Imageadapter,我有背景图片

public class ImageAdapter2 extends BaseAdapter {

private Context mContext;

public ImageAdapter2() {

}

public int getCount() {
return mThumbIds.length;
}
public Object getItem(int position) {
return mThumbIds[position];
}
public long getItemId(int position) {
return 0;
}
public ImageAdapter2(Context c) {
mContext = c;
}

public View getView(final int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null){
imageView = new ImageView(mContext);
Picasso.with(mContext).load(mThumbIds[position])
.resize(200, 200).into(imageView);
imageView.setLayoutParams(new GridView.LayoutParams(150,150));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(3, 3, 3, 3);
imageView.setMaxHeight(300);
imageView.setMaxWidth(300);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

MyPreferenceActivity myPref = new MyPreferenceActivity(mContext);
myPref.setGifImage(position);

Intent intent = new Intent(mContext,FullScreenImage.class);
intent.putExtra("imageID", mThumbIds[position]);
mContext.startActivity(intent);

}
});

}
else{
imageView = (ImageView) convertView;
}
return imageView;
}
public Integer[] mThumbIds = {

R.drawable.imagess,R.drawable.seven
};
}

这是我想更改布局背景的 MainActivity,我的布局是 LinearLayout

public class MainActivity extends ActionBarActivity {


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


}
}

我对图像的偏好 Activity

public class MyPreferenceActivity extends PreferenceActivity{

Context context;
public SharedPreferences sp;
SharedPreferences.Editor editor;

private final static String KEY_IMAGE = "image";

public MyPreferenceActivity(Context context)
{
this.context = context;
sp = context.getApplicationContext().getSharedPreferences("Image", 0);
editor = sp.edit();
}
public void setGifImage(int imgUrl)
{
editor.putInt(KEY_IMAGE, imgUrl);
editor.commit();
}
public Integer getGifImage()
{
return sp.getInt(KEY_IMAGE, 0);
}
}

所以,如果有人知道,请提供想法。谢谢

最佳答案

如果背景的变化必须持久,您可以使用sharedpreferences,您可以在其中选择图像来更改首选项,并在onResume 的 Activity 中背景必须改变您将检查它并进行更改

否则,您可以创建一个Singleton,如果您不需要此更改是持久的,则可以执行相同的操作。

编辑

设置偏好

SharedPreferences prefs = context.getSharedPreferences("Image", 0);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(KEY_IMAGE, imgUrl);
editor.commit(); (or .apply(); but in this case you should use commit();)

阅读

SharedPreferences prefs = context.getSharedPreferences("Image", 0);
String url = prefs.getString(KEY_IMAGE, "");

上下文是必需的,在 Activity 中,但是你在 Activity 中有它

关于android - 如何从另一个 Activity 更改布局背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40057799/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com