Android Open Source - GeoTagger Do Image Tag View






From Project

Back to project page GeoTagger.

License

The source code is released under:

GNU General Public License

If you think the Android project GeoTagger 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

package horizon.geotagger.view;
/*from  ww  w .  j ava2 s  .  c o m*/
import java.util.HashMap;
import java.util.Map.Entry;

import horizon.android.logging.Logger;
import horizon.geotagger.R;

import android.hardware.Camera;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;

public class DoImageTagView
extends DoTagView
{    
  private static Logger logger = Logger.getLogger(DoImageTagView.class);
  
  @Override
  protected void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.doimagetagview);
    
    final Camera camera = Camera.open();
    Camera.Parameters cp = camera.getParameters();
    setImageSize(cp);
    camera.setParameters(cp);
    
    Button doButton = (Button)findViewById(R.id.DoImageTagButton);
    doButton.setOnClickListener(new View.OnClickListener() 
        {
      @Override
      public void onClick(View v) 
      {
        camera.takePicture(null, null, new Camera.PictureCallback() 
        {
          @Override
          public void onPictureTaken(final byte[] data, Camera camera) 
          {
            new Thread(new Runnable()
            {
              @Override
              public void run()
              {
                store("image/jpeg", data);
                DoImageTagView.this.finish();
              }
            }).start();
          }
        });
      }
    });
    Button cancelButton = (Button)findViewById(R.id.CancelImageTagButton);
    cancelButton.setOnClickListener(new View.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        DoImageTagView.this.finish();
      }
    });
        
        LinearLayout ll = (LinearLayout)findViewById(R.id.CameraPreviewHolder);
        CameraSurfaceView cview = new CameraSurfaceView(camera, this);
        ll.addView(cview);
  }
  
  @Override
  protected void onResumeInternal() { }
  
  @Override
  protected void onPauseInternal() { }
  
  private void setImageSize(Camera.Parameters cp)
  {
    for(String param : cp.flatten().split(";"))
      logger.debug("Camera parameter: " + param);
    HashMap<Integer, Integer> sizes = new HashMap<Integer, Integer>();
    int width = Integer.MAX_VALUE;
    int height = Integer.MAX_VALUE;
    
    if(cp.get("picture-size-values") == null)
    {
      // Set and hope! - works on the Hero
      cp.setPictureSize(320, 240);
      cp.setPreviewSize(320, 240);
      return;
    }
    
    // This works on the Nexus One, not on the Hero and unknown on other devices
    logger.debug("Available picture sizes are: " + cp.get("picture-size-values"));
    for(String part : cp.get("picture-size-values").split(","))
    {
      String[] s = part.split("x");
      sizes.put(new Integer(s[0]), new Integer(s[1]));
    }
    
    for(Entry<Integer, Integer> entry : sizes.entrySet())
      if(entry.getKey().intValue() < width)
      {
        width = entry.getKey().intValue();
        height = entry.getValue().intValue();
      }
    
    logger.debug("Selected picture size is: " + width + "x" + height);
      
    cp.setPictureSize(width, height);
  }
}




Java Source Code List

horizon.android.logging.Logger.java
horizon.geotagger.AlertService.java
horizon.geotagger.Base64.java
horizon.geotagger.GeoTagger.java
horizon.geotagger.GeoTagger.java
horizon.geotagger.GeoUtils.java
horizon.geotagger.GeoUtils.java
horizon.geotagger.JavaLoggingAppender.java
horizon.geotagger.JspUtils.java
horizon.geotagger.PMF.java
horizon.geotagger.PersconServiceConnection.java
horizon.geotagger.model.Attachment.java
horizon.geotagger.model.Attachment.java
horizon.geotagger.model.Place.java
horizon.geotagger.model.Place.java
horizon.geotagger.model.Tag.java
horizon.geotagger.model.Tag.java
horizon.geotagger.server.AddTagServlet.java
horizon.geotagger.server.CallbackServlet.java
horizon.geotagger.server.DataBinder.java
horizon.geotagger.server.ModelAndView.java
horizon.geotagger.server.ServletWithView.java
horizon.geotagger.server.TagsAtPointData.java
horizon.geotagger.server.TagsAtPointServlet.java
horizon.geotagger.server.TagsInBoxData.java
horizon.geotagger.server.TagsInBoxServlet.java
horizon.geotagger.view.CameraSurfaceView.java
horizon.geotagger.view.DoImageTagView.java
horizon.geotagger.view.DoTagView.java
horizon.geotagger.view.DoTextTagView.java
horizon.geotagger.view.MapView.java
horizon.geotagger.view.TagOverlay.java
horizon.geotagger.view.TagView.java