コード例 #1
0
  @Override
  protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);

    if (null != savedInstanceState) {
      // 地理位置
      if (savedInstanceState.containsKey("location")) {
        locationString = savedInstanceState.getString("location");
        if (null == locationString || locationString.length() < 1) {
          choiceLocationTextView.setText("告诉我你在哪里....");
        } else {
          choiceLocationTextView.setText(locationString);
        }
      }
      // 内容
      if (savedInstanceState.containsKey("content")) {
        contentEditText.setText(savedInstanceState.getString("content"));
      }
      // 图片
      if (savedInstanceState.containsKey("images")) {
        ArrayList<String> imageList = savedInstanceState.getStringArrayList("images");
        for (String string : imageList) {
          addNewsImageView(string);
        }
      }

      // 最后拍的
      if (savedInstanceState.containsKey("tmpImageName")) {
        tmpImageName = savedInstanceState.getString("tmpImageName");
      }
    }
  }
コード例 #2
0
  // /防止内存不够用
  @Override
  protected void onSaveInstanceState(Bundle outState) {

    // 内容
    outState.putString("content", contentEditText.getText().toString());
    // 地点
    outState.putString("location", locationString);
    // 图片
    ArrayList<String> imageList = new ArrayList<String>();
    int subviewsCount = addImageLayout.getChildCount();
    for (int i = 0; i < subviewsCount; i++) {
      View view = addImageLayout.getChildAt(i);
      if (null != view.getTag() && view != addImageView) {
        if (view.getTag() instanceof String) {
          imageList.add((String) view.getTag());
        }
      }
    }
    outState.putStringArrayList("images", imageList);
    if (null != tmpImageName && tmpImageName.length() > 0) {
      // 刚拍的照片
      outState.putString("tmpImageName", tmpImageName);
    }

    super.onSaveInstanceState(outState);
  }
コード例 #3
0
 @Override
 protected void onRestoreInstanceState(Bundle savedInstanceState) {
   // TODO Auto-generated method stub
   super.onRestoreInstanceState(savedInstanceState);
   if (null != savedInstanceState) {
     tmpImageName = savedInstanceState.getString("tmpImageName");
   }
 }
コード例 #4
0
  @Override
  // 销毁的时候清空缓存
  protected void onDestroy() {
    super.onDestroy();

    // 清除缓存
    for (int i = 0; i < addImageLayout.getChildCount(); i++) {
      View view = addImageLayout.getChildAt(i);
      // 如果不是添加按钮
      if (view != addImageView) {
        // 图片
        File file = new File((String) view.getTag());
        if (file.exists()) {
          file.delete();
        }
      }
    }
  }
コード例 #5
0
 // 图片滤镜
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
   // TODO Auto-generated method stub
   super.onActivityResult(requestCode, resultCode, data);
   if (resultCode == Activity.RESULT_OK) {
     String sdStatus = Environment.getExternalStorageState();
     if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
       LogUtils.i("SD card is not avaiable/writeable right now.", 1);
       return;
     }
     // 头像需要缩放
     switch (requestCode) {
       case TAKE_PHOTO: // 当选择拍照时调用
         // 图片压缩
         int[] screenSize = getScreenSize();
         if (FileUtil.tempToLocalPath(tmpImageName, screenSize[0], screenSize[1])) {
           displayImage(tmpImageName);
         }
         break;
       case ALBUM_SELECT: // 当选择从本地获取图片时
         if (data != null) {
           @SuppressWarnings("unchecked")
           List<String> resultList =
               (List<String>) data.getSerializableExtra(GalleyActivity.INTENT_KEY_PHOTO_LIST);
           // 循环处理图片
           for (String fileRealPath : resultList) {
             // 只取一张
             int[] screenSize1 = getScreenSize();
             if (fileRealPath != null
                 && FileUtil.tempToLocalPath(
                     fileRealPath, tmpImageName, screenSize1[0], screenSize1[1])) {
               displayImage(tmpImageName);
               break;
             }
           }
         }
         break;
     }
   }
 }
コード例 #6
0
 @Override
 public void onSaveInstanceState(Bundle outState) {
   // TODO Auto-generated method stub
   super.onSaveInstanceState(outState);
   outState.putSerializable("tmpImageName", tmpImageName);
 }
コード例 #7
0
  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == Activity.RESULT_OK) {
      String sdStatus = Environment.getExternalStorageState();
      if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用
        LogUtils.i("SD card is not avaiable/writeable right now.", 1);
        return;
      }
      switch (requestCode) {
        case TAKE_PHOTO: // 当选择拍照时调用
          // 图片压缩
          int[] screenSize = getScreenSize();
          if (FileUtil.tempToLocalPath(tmpImageName, screenSize[0], screenSize[1])) {
            // filterImage(FileUtil.BIG_IMAGE_PATH + tmpImageName,
            // true);
            addNewsImageView(FileUtil.BIG_IMAGE_PATH + tmpImageName);
          }
          break;
        case ALBUM_SELECT: // 当选择从本地获取图片时
          /** **************** */
          @SuppressWarnings("unchecked")
          List<String> resultList =
              (List<String>) data.getSerializableExtra(GalleyActivity.INTENT_KEY_PHOTO_LIST);
          int[] screenSize1 = getScreenSize();
          long interval = System.currentTimeMillis() / 1000;
          // 循环处理图片
          for (String fileRealPath : resultList) {
            LogUtils.i(fileRealPath, 1);
            // 用户id+时间戳
            String fileName = UserManager.getInstance().getUser().getUid() + "" + interval + ".jpg";
            if (fileRealPath != null
                && FileUtil.tempToLocalPath(
                    fileRealPath, fileName, screenSize1[0], screenSize1[1])) {
              addNewsImageView(FileUtil.BIG_IMAGE_PATH + fileName);
            }
            // 命名规则以当前时间戳顺序加一
            interval++;
          }

          Timer timer = new Timer();
          timer.schedule(
              new TimerTask() {

                @Override
                public void run() {
                  // TODO Auto-generated method stub
                  // Message message = new Message();
                  // message.what = 1;
                  // handler.sendMessage(message);
                  timerHandler.post(
                      new Runnable() {
                        @Override
                        public void run() {
                          // TODO Auto-generated method stub
                          // 恢复点击
                          rightLayout.setEnabled(true);
                        }
                      });
                }
              },
              1000);

          /** **************** */
          // // 做非空判断
          // if (data != null) {
          // Uri uri = data.getData();
          // try {
          // ContentResolver cr = this.getContentResolver();
          // if (uri.toString().endsWith(".png")
          // || uri.toString().endsWith(".jpg")
          // || "image/jpeg".equals(cr.getType(uri))
          // || "image/png".equals(cr.getType(uri))) {
          // // 压缩存储
          // int[] screenSize1 = getScreenSize();
          // String fileRealPath = getRealPathFromURI(uri);
          // if (fileRealPath != null
          // && FileUtil.tempToLocalPath(fileRealPath,
          // tmpImageName, screenSize1[0],
          // screenSize1[1])) {
          // filterImage(FileUtil.BIG_IMAGE_PATH
          // + tmpImageName, true);
          // }
          // } else {
          //
          // }
          //
          // } catch (Exception e) {
          // e.printStackTrace();
          // }
          // }
          break;

          // 删除选中的照片
        case PHOTO_DELETE:
          if (data.hasExtra(PublisPhotoHandelActivity.INTENT_KEY_DELETE_URL)) {
            String tmpFilePath =
                data.getStringExtra(PublisPhotoHandelActivity.INTENT_KEY_DELETE_URL);
            deleteNewsImageView(tmpFilePath);
          }
          break;
      }
    } else {
      // 恢复点击
      rightLayout.setEnabled(true);
    }

    // 地理位置
    if (resultCode == LOCATION_SELECT) {
      String location = data.getStringExtra("location");
      if (null != location && !"".equals(location)) {
        locationString = location;
        choiceLocationTextView.setText(location);
      } else {
        locationString = "";
        choiceLocationTextView.setText("告诉我你在哪里....");
      }
    }
  }