コード例 #1
0
  /*
   * This function is strictly for use by internal APIs. Not that we have
   * anything external but there is some trickery here! The getBitmap function
   * cannot be invoked from the UI thread. Having to deal with complexity of
   * when & how to call this API is too much for those who just want to have
   * the bitmap. This is a utility function and is public because it is to be
   * shared by other components in the internal implementation.
   */
  public Bitmap getBitmap(
      String serverUrl, boolean cacheBitmap, int bestWidth, int bestHeight, String source) {
    File f = mFileCache.getFile(serverUrl);
    // from SD cache
    Bitmap b = decodeFile(f, bestHeight, bestWidth, source);
    if (b != null) {
      Logging.i(TAG, "Image Available in SD card: ", false, classLevelLogEnabled);
      if (cacheBitmap) mAisleImagesCache.putBitmap(serverUrl, b);
      return b;
    }

    // from web
    try {
      if (serverUrl == null || serverUrl.length() < 1) {

        return null;
      }
      Logging.i(
          TAG,
          "Image DownLoad Time starts At: " + System.currentTimeMillis(),
          false,
          classLevelLogEnabled);
      Bitmap bitmap = null;
      URL imageUrl = new URL(serverUrl);
      HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
      conn.setConnectTimeout(30000);
      conn.setReadTimeout(30000);
      conn.setInstanceFollowRedirects(true);
      InputStream is = conn.getInputStream();
      int hashCode = serverUrl.hashCode();
      String filename = String.valueOf(hashCode);
      OutputStream os = new FileOutputStream(f);
      Utils.CopyStream(is, os);
      os.close();
      Logging.i(
          TAG,
          "Image DownLoad Time Ends At: " + System.currentTimeMillis(),
          false,
          classLevelLogEnabled);
      Logging.i(
          TAG,
          "Bitmap Decode Time Starts At: " + System.currentTimeMillis(),
          false,
          classLevelLogEnabled);
      bitmap = decodeFile(f, bestHeight, bestWidth, source);
      Logging.i(
          TAG,
          "Bitmap Decode Time Ends At: " + System.currentTimeMillis(),
          false,
          classLevelLogEnabled);
      if (cacheBitmap) mAisleImagesCache.putBitmap(serverUrl, bitmap);
      return bitmap;
    } catch (Throwable ex) {
      ex.printStackTrace();
      if (ex instanceof OutOfMemoryError) {
        // mAisleImagesCache.evictAll();
      }
      return null;
    }
  }
コード例 #2
0
  private BitmapLoaderUtils() {
    // mContext = context;
    mFileCache = AnchoredContext.getInstance().getFileCache();

    mAisleImagesCache = BitmapLruCache.getInstance(AnchoredContext.getInstance());

    // DisplayMetrics metrics = mContext.getResources().getDisplayMetrics();
    // mScreenWidth = metrics.widthPixels;

    // mExecutorService = Executors.newFixedThreadPool(5);
  }
コード例 #3
0
ファイル: AlbumListView.java プロジェクト: AdamBahr/Boost_Me
  private class AlubumListViewAdapter extends ArrayAdapter<ListviewAlubumData> {

    RequestQueue mRequestQueue = Volley.newRequestQueue(AlbumListView.this);
    private ImageLoader imageLoader =
        new ImageLoader(mRequestQueue, new BitmapLruCache(BitmapLruCache.getDefaultLruCacheSize()));
    private RelativeLayout.LayoutParams params;
    private int imageHeigthAndWidth[];
    private Activity mActivity;
    Typeface HelveticaLTStd_Light =
        Typeface.createFromAsset(getAssets(), "fonts/HelveticaLTStd-Light.otf");
    private LayoutInflater mInflater;

    public AlubumListViewAdapter(
        Activity context, List<ListviewAlubumData> objects, int imageHeigthAndWidth[]) {
      super(context, R.layout.alubumlistviewitem, objects);
      // TODO Auto-generated constructor stub
      mActivity = context;
      mInflater = (LayoutInflater) mActivity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      this.imageHeigthAndWidth = imageHeigthAndWidth;
      Ultilities ultilities = new Ultilities();
      // params=ultilities.getRelativelayoutParams(imageHeigthAndWidth[1],
      // imageHeigthAndWidth[0]);
      // params.addRule(RelativeLayout.CENTER_HORIZONTAL);
      // params.addRule(RelativeLayout.CENTER_VERTICAL);
      /*
       * params.addRule(RelativeLayout.); params.setMargins(5, 0, 0, 0);
       */
    }

    @Override
    public int getCount() {
      // TODO Auto-generated method stub
      return super.getCount();
    }

    @Override
    public ListviewAlubumData getItem(int position) {
      // TODO Auto-generated method stub
      return super.getItem(position);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      // TODO Auto-generated method stub
      ViewHolder holder;
      // TODO Auto-generated method stub-
      if (convertView == null) {
        holder = new ViewHolder();
        convertView = mInflater.inflate(R.layout.alubumlistviewitem, null);
        holder.imageview =
            (NetworkImageView) convertView.findViewById(R.id.albumlistviewitemImageview);
        holder.imageview.setImageResource(R.drawable.multi_user_icon);
        holder.textview = (TextView) convertView.findViewById(R.id.albumlistviewitemTextView);
        holder.photocount = (TextView) convertView.findViewById(R.id.photocount);
        holder.textview.setTypeface(HelveticaLTStd_Light);
        holder.photocount.setTypeface(HelveticaLTStd_Light);
        holder.textview.setTextColor(Color.rgb(105, 105, 105));
        holder.photocount.setTextColor(Color.rgb(153, 153, 153));
        // holder.alubumitemimageViewParent =
        // (RelativeLayout)convertView.findViewById(R.id.alubumitemimageViewParent);
        convertView.setTag(holder);

      } else {
        holder = (ViewHolder) convertView.getTag();
        holder.imageview.setImageResource(R.drawable.multi_user_icon);
      }

      holder.textview.setId(position);
      holder.imageview.setId(position);
      holder.photocount.setId(position);
      // holder.alubumitemimageViewParent.setId(position);

      // holder.imageview.setLayoutParams(params);
      holder.photocount.setText("" + getItem(position).getPhotoCount() + " Photos");
      holder.textview.setText("" + getItem(position).getAlubumName());

      holder.imageview.setImageResource(R.drawable.multi_user_icon);
      // holder.imageview.setImageUrl(getItem(position).getPickUrl(),
      // imageLoader,"AlubumLisView",AlbumListView.this);
      holder.imageview.setImageUrl(getItem(position).getPickUrl(), imageLoader);
      // if (getItem(position).getmBitmap()!=null)
      // {
      //
      // // holder.mProgressBar.setVisibility(View.GONE);
      // holder.imageview.setImageBitmap(
      // Bitmap.createScaledBitmap(getItem(position).getmBitmap(),
      // imageHeigthAndWidth[1], imageHeigthAndWidth[0], false));
      // }
      // else
      // {
      //
      // }

      return convertView;
    }

    class ViewHolder {
      NetworkImageView imageview;
      TextView textview;
      TextView photocount;
      RelativeLayout alubumitemimageViewParent;
    }
  }