将String Array设置为ImageView

时间:2016-04-19 20:12:09

标签: android arrays

我想将包含图像位置的String Array设置为ImageView。字符串数组将活动A传递回活动B,并在活动B中设置为ImageView。 我该怎么设置?以下是代码:

来自活动A:

 String[] outputStrArr = new String[selectedItems.size()];

                    for (int i = 0; i < selectedItems.size(); i++) {
                        outputStrArr[i] = selectedItems.get(i);
                        //Log.i(GalleryActivity.TAG,outputStrArr[i]);
                    }

                    Intent intent = new Intent(getApplicationContext(),
                            MainActivity.class);

                    // Create a bundle object
                    Bundle bundle = new Bundle();
                    bundle.putStringArray("gridItem", outputStrArr);

                    // Add the bundle to the intent.
                    intent.putExtras(bundle);

                    // start the MainActivity
                    startActivity(intent);

来自活动B:

public void onResume() {
    super.onResume();

    Bundle bundle = getIntent().getExtras();

    if (bundle != null){

        String[] result = bundle.getStringArray("gridItem");

        if(result != null){;
            // I want to set the String Array to ImageView here. 
        }
    }
}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

首先,图像需要包含在drawable文件夹中,然后在这里你可以做什么:

Resources res = getResources();
String mDrawableName = result.get(position);;
int resID = res.getIdentifier(mDrawableName , "drawable", getPackageName());
Drawable drawable = res.getDrawable(resID );
imageView.setImageDrawable(drawable );

这应该完美。但是,如果您有其他问题,请告诉我。

编辑:

尝试以下代码从存储在SD卡中的文件中设置位图图像:

File imgFile = new  File("/sdcard/Images/my_image.jpg");
if(imgFile.exists()){
    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
    myImage.setImageBitmap(myBitmap);
}

并在清单文件中包含此权限:

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