Android Open Source - ChicagoWaterWalk-Android Picture Activity






From Project

Back to project page ChicagoWaterWalk-Android.

License

The source code is released under:

Apache License

If you think the Android project ChicagoWaterWalk-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2014 The Illinois-Indiana Sea Grant
 *//from w  w w  . j  a  v a 2s . c o  m
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.iisgcp.waterwalk.activity;

import org.iisgcp.waterwalk.R;
import org.iisgcp.waterwalk.utils.ImageFetcher;
import org.iisgcp.waterwalk.utils.ImageWorker;
import org.iisgcp.waterwalk.utils.ImageCache.ImageCacheParams;

import android.content.res.Configuration;
import android.content.res.TypedArray;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;

public class PictureActivity extends FragmentActivity {

    private static final String IMAGE_CACHE_DIR = "historic_photos";
  
    private int mImageId;
    private ImageView mImageView;
    
    private ImageFetcher mImageFetcher;
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
      
        View view = getLayoutInflater().inflate(R.layout.activity_picture, null);
        setContentView(view);
      
        view.setOnClickListener(new View.OnClickListener() {
      
      @Override
      public void onClick(View v) {
        finish();
      }
    });
        
    // check to see if we were called by clicking on a link
      if (getIntent().getData() != null) {
        Uri data = getIntent().getData();
        int resId = Integer.valueOf(data.getPath().replace("/", ""));
        
          TypedArray historicalPhotos = getResources().obtainTypedArray(R.array.historical_photos);
          mImageId = historicalPhotos.getResourceId(resId, -1);
          historicalPhotos.recycle();
      } 
      
      // First decode with inJustDecodeBounds=true to check dimensions
      final BitmapFactory.Options options = new BitmapFactory.Options();
      options.inJustDecodeBounds = true;
      BitmapFactory.decodeResource(getResources(), mImageId, options);
      int outWidth = options.outWidth;
      int outHeight = options.outHeight;
      
      int maxWidth;
      int targetWidth;
      int targetHeight;
        
        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
          maxWidth = getResources().getDisplayMetrics().widthPixels;
        } else {
          maxWidth = getResources().getDisplayMetrics().heightPixels;
        }
      
        if (outWidth < maxWidth) {
          targetWidth = maxWidth;
          int scale = maxWidth / outWidth;
          targetHeight = outHeight * scale;
        } else {
          targetWidth = maxWidth;
          int scale = outWidth / maxWidth;
          targetHeight = outHeight * scale;
        }
        
      mImageView = (ImageView) findViewById(R.id.picture);
      
      ImageCacheParams cacheParams = new ImageCacheParams(this, IMAGE_CACHE_DIR);
        cacheParams.setMemCacheSizePercent(0.25f); // Set memory cache to 25% of app memory

        // The ImageFetcher takes care of loading images into our ImageView children asynchronously
        mImageFetcher = new ImageFetcher(this, targetWidth, targetHeight);
        mImageFetcher.addImageCache(getSupportFragmentManager(), cacheParams);
  }
  
  @Override
  public void onResume() {
    super.onResume();
    mImageFetcher.setExitTasksEarly(false);
    mImageFetcher.loadImage(String.valueOf(mImageId), mImageView);
  }

  @Override
  protected void onPause() {
    super.onPause();
    mImageFetcher.setExitTasksEarly(true);
    mImageFetcher.flushCache();
  }

  @Override
  protected void onDestroy() {
    super.onDestroy();
    mImageFetcher.closeCache();

    if (mImageView != null) {
      // Cancel any pending image work
      ImageWorker.cancelWork(mImageView);
      mImageView.setImageDrawable(null);
    }
  }
}




Java Source Code List

org.iisgcp.waterwalk.activity.AboutActivity.java
org.iisgcp.waterwalk.activity.FactActivity.java
org.iisgcp.waterwalk.activity.MainActivity.java
org.iisgcp.waterwalk.activity.MapActivity.java
org.iisgcp.waterwalk.activity.NavigationDrawerActivity.java
org.iisgcp.waterwalk.activity.PictureActivity.java
org.iisgcp.waterwalk.activity.PointOfInterestActivity.java
org.iisgcp.waterwalk.activity.PointOfInterestDetailActivity.java
org.iisgcp.waterwalk.adapter.AllRoutesAdapter.java
org.iisgcp.waterwalk.adapter.DetailListAdapter.java
org.iisgcp.waterwalk.adapter.RecyclingImageView.java
org.iisgcp.waterwalk.adapter.RouteGridAdapter.java
org.iisgcp.waterwalk.adapter.RowItem.java
org.iisgcp.waterwalk.fragment.AllRoutesFragment.java
org.iisgcp.waterwalk.fragment.FactFragment.java
org.iisgcp.waterwalk.fragment.FactViewPagerFragment.java
org.iisgcp.waterwalk.fragment.MapFragment.java
org.iisgcp.waterwalk.fragment.PointOfInterestGridFragment.java
org.iisgcp.waterwalk.fragment.PointOfInterestGridViewPagerFragment.java
org.iisgcp.waterwalk.fragment.PointOfInterestMapFragment.java
org.iisgcp.waterwalk.fragment.RoutesGridFragment.java
org.iisgcp.waterwalk.fragment.RoutesMapFragment.java
org.iisgcp.waterwalk.utils.AsyncTask.java
org.iisgcp.waterwalk.utils.Constants.java
org.iisgcp.waterwalk.utils.CustomImageView.java
org.iisgcp.waterwalk.utils.DiskLruCache.java
org.iisgcp.waterwalk.utils.GenericDialog.java
org.iisgcp.waterwalk.utils.HelpDialog.java
org.iisgcp.waterwalk.utils.ImageCache.java
org.iisgcp.waterwalk.utils.ImageFetcher.java
org.iisgcp.waterwalk.utils.ImageResizer.java
org.iisgcp.waterwalk.utils.ImageWorker.java
org.iisgcp.waterwalk.utils.InfoDialog.java
org.iisgcp.waterwalk.utils.LicenseDialog.java
org.iisgcp.waterwalk.utils.OnItemClickedListener.java
org.iisgcp.waterwalk.utils.OnPageSelectedListener.java
org.iisgcp.waterwalk.utils.PictureInfoDialog.java
org.iisgcp.waterwalk.utils.RecyclingBitmapDrawable.java
org.iisgcp.waterwalk.utils.Utils.java