android发送arraylist String [] imageUrl到另一个活动并显示来自接收网址的图像

时间:2013-12-19 11:47:23

标签: android android-layout android-intent

我正在使用arraylist字符串的图片网址。在图像点击我想要将所选图像URL发送到另一个activity.i成功发送第二个活动中的arraylist字符串网址。但现在我的观点是我如何显示接收路径中的图像。请参阅下面的代码..谢谢提前。

当我将图片网址发送到第二个活动时,我的第一个活动:

 iv_openimage = (ImageView) findViewById(R.id.iv_openimage);
    iv_openimage.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(VarientDetails.this,ImageSwitcher.class);

            intent.putExtra("imageurls", imageurls);
            Log.d("CMH", "images url = " + imageurls);
            startActivity(intent);
        }
    });

这是我的第二个活动,我可以收到图片网址。我想从收到的网址显示我的图片。

public class ImageSwitcher extends Activity {

ImageView iv_getimage;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.imageswitcher);

    iv_getimage = (ImageView) findViewById(R.id.imageView1);
    ArrayList<String> resultArray = getIntent().getStringArrayListExtra("imageurls");
    Log.d("CMH imgswtchr", "images url = " + resultArray);


}
}

我收到了图片网址..现在我只想让它从收到的网址上显示我的图片。

这是我的第二个活动的xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="142dp"
    android:layout_marginTop="247dp"
     />

</RelativeLayout>

2 个答案:

答案 0 :(得分:3)

我建议您使用由Square开发的Picasso for Android。

  

http://square.github.io/picasso/

这很简单。

public class ImageSwitcher extends Activity {

    ImageView iv_getimage;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
       // TODO Auto-generated method stub
       super.onCreate(savedInstanceState);
       setContentView(R.layout.imageswitcher);

       iv_getimage = (ImageView) findViewById(R.id.imageView1);
       ArrayList<String> resultArray = getIntent().getStringArrayListExtra("imageurls");
       Log.d("CMH imgswtchr", "images url = " + resultArray);

       Picasso.with(getBaseContext()).load(resultArray.get(0)).into(iv_getimage);

   } 
}

您只需下载 .jar 文件并将其添加到项目内的 libs 文件夹中

对评论的请求进行更新:

  

Android: How to handle right to left swipe gestures

希望它有所帮助! :)

答案 1 :(得分:2)

对于下载图像,请使用Async HTTP Client。

我有一个建议尝试使用AsyncHttpclient从服务器获取响应,不需要这个长代码。

http://loopj.com/android-async-http/

                AsyncHttpClient client = new AsyncHttpClient();
                        String[] allowedContentTypes = new String[] {
                                "image/png", "image/jpeg", "image/jpg" };

                        client.get(GlobalVars.VendorData
                                .getVendorLogo(),
                                new BinaryHttpResponseHandler(
                                        allowedContentTypes) {
                                    @Override
                                    public void onSuccess(
                                            byte[] fileData) {
                                        // Do something with the file
                                        System.out
                                                .println("Image Loaded.. "
                                                        + fileData);

                                        Bitmap bmp = BitmapFactory
                                                .decodeByteArray(
                                                        fileData, 0,
                                                        fileData.length);

                                        vendor_icon.setImageBitmap(bmp);
                                    }

                                    @Override
                                    protected void handleFailureMessage(
                                            Throwable arg0, String arg1) {
                                        // TODO Auto-generated method
                                        // stub
                                        super.handleFailureMessage(
                                                arg0, arg1);
                                        System.out
                                                .println("Image Loaded.. "
                                                        + arg1);
                                    }
                                });

您还需要包含jar文件。