Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从库中设置应用程序背景_Android_Background_Gallery_Sharedpreferences - Fatal编程技术网

Android 从库中设置应用程序背景

Android 从库中设置应用程序背景,android,background,gallery,sharedpreferences,Android,Background,Gallery,Sharedpreferences,我有一个应用程序使用共享首选项来设置一些预先确定的图像的背景,但我想让用户能够从他们的图库中选择图像。我该怎么做 代码如下: int bak; int em; int lo; int lay; SharedPreferences data; public static String filename = "bg"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan

我有一个应用程序使用共享首选项来设置一些预先确定的图像的背景,但我想让用户能够从他们的图库中选择图像。我该怎么做

代码如下:

int bak;
int em;
int lo;
int lay;
SharedPreferences data;
public static String filename = "bg";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    lo = R.layout.main;
    data = getSharedPreferences(filename, 0);
    lay = data.getInt("lout", lo);          
    setContentView(lay);

    em = R.drawable.bakgrund;
    data = getSharedPreferences(filename, 0);
    bak = data.getInt("bakgrund", em);

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();
    RelativeLayout bg = (RelativeLayout) findViewById(R.id.might);
    bg.setBackgroundResource(bak);

在onCreate方法中,添加以下行以从库中拾取图像:

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) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                break;
            }
    }
}
另外,在清单文件中添加此权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

我是否需要任何权限才能使用gallery?(我将在早上尝试该代码。)