Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.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_Arraylist_Bitmap - Fatal编程技术网

Android 为什么我无法将位图添加到位图阵列列表

Android 为什么我无法将位图添加到位图阵列列表,android,arraylist,bitmap,Android,Arraylist,Bitmap,为什么我无法在asynktask内的位图数组列表中添加位图 public static class YourMoves_Players extends AsyncTask<String, String, String> { // static String yourmove_players[]; @Override protected String doInBackground(String... args) { boolean failure

为什么我无法在asynktask内的位图数组列表中添加位图

public static class YourMoves_Players extends AsyncTask<String, String, String> {

//  static String yourmove_players[];
    @Override
    protected String doInBackground(String... args) {

        boolean failure = false;
        // TODO Auto-generated method stub
         // Check for success tag
       int success;

       Log.d("login.on create","YOURMOVE_PLAYERS Background");
       try {
           // Building Parameters
           List<NameValuePair> params = new ArrayList<NameValuePair>();

           params.add(new BasicNameValuePair("playerid", fb_id));//player_id
           Log.d("request!", "starting");

           //Posting user data to script 
           JSONObject json = jsonParser.makeHttpRequest(
                  GETYOURMOVE_URL, "POST", params);
           if(json == null)
           {
            Log.d("json","json returning null");
               return null;
           }

           success = json.getInt(TAG_SUCCESS);
           if (success == 1) {

            products = json.getJSONArray(TAG_PRODUCTS);

            Log.d("Notification","BEFORE FOR LOOP");
            Log.d("",products.length()+" LENGTH");
                for (int i = 0; i < products.length(); i++) {
                    JSONObject c = products.getJSONObject(i);

                    String yourmove_pid = c.getString(TAG_YOURMOVE_ID); 
                    String player_name = c.getString(TAG_YOURMOVE_NAME);

                //  yourmove_pic.add(Get_FB_Image.getFBImage(yourmove_pid));
                    Players player=new Players(yourmove_pid,player_name);
                    yourmove_list.add(player);
                    yourmove_id.add(yourmove_pid);
                    yourmove.add(player_name);
                    Log.d("Vs_facebook","going to add bitmap facebook image");
                    yourmove_pic.add(Get_FB_Image.getFBImage(yourmove_pid));
                    Log.d("Vs_facebook"," facebook image added");
            Log.d("User Created!", json.toString()+"CONGRETS");
                }


                Log.d("","AFTER FOR LOOP yourmove_id  "+yourmove_id);
            return json.getString(TAG_MESSAGE);
           }else{
            Log.d("Login Failure!", "SUCCESS FAILED");
            return json.getString(TAG_MESSAGE);

           }
       } catch (JSONException e) {
           e.printStackTrace();
       }
       catch(Exception e){}

       return null;

    }
    /**
    * After completing background task Dismiss the progress dialog
    * **/


} 
在我的getFBImage中,我得到的个人资料图片如下

URL img_value = null;
img_value = new URL("http://graph.facebook.com/"+fb_id+"/picture?type=small");
fb_image = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());
return fb_image;

根据我的说法,这应该通过内存出错误异常来解决,为了解决这个问题,这里有一些链接可以帮助您解决这个问题:


可以处理可能是
获取FB\u图像。getFBImage(yourmove\u pid)
解码流并返回位图。如果是这种情况,可能是流解码生成位图尚未完成,这就是为什么在获取位图时应用程序被卡住。

您遇到了什么错误?也请发布您的日志。是您的
Get\u FB\u Image.getFBImage(yourmove\u pid)
return
Bitmap
?您是否收到空指针异常?它可能会抛出一个“outofmemory错误”。我没有收到任何异常,它被卡在Log.d(“Vs\u facebook”,“要添加位图facebook图像”);是的,当我使用此方法将图像直接设置到图像视图时,我获得了facebook图像。请参见上文,我使用getFBImage()定义编辑了我的帖子。请告诉我在位图阵列中存储图像需要添加哪些额外内容。您可以添加执行流解码的异步任务。在这种情况下,只需通知用户当前正在后台解码配置文件。只要想想合适的词语和句子就可以通知用户。如果我没有弄错的话,Android应该避免从主线程中的流进行解码,这就是为什么最好有一个后台任务(AsyncTask)来执行解码。
URL img_value = null;
img_value = new URL("http://graph.facebook.com/"+fb_id+"/picture?type=small");
fb_image = BitmapFactory.decodeStream(img_value.openConnection().getInputStream());
return fb_image;