String getDirectoryPath();
String getFilename();
+ String getAperature();
+ String getShutterSpeed();
+ String getIsoSensitivity();
+ String getExpRev();
+ int getOrientation();
+ String getAspectRatio();
+ String getModel();
+ String getLatLng();
+ boolean getCaptured();
+
}
private final String path;
private final String name;
private Date dateTime;
+ private boolean captured;
+ private String av;
+ private String sv;
+ private String tv;
+ private String xv;
+ private int orientation;
+ private String aspectRatio;
+ private String cameraModel;
+ private String latlng;
public CameraFileInfo(@NonNull String path, @NonNull String name)
{
this.path = path;
this.name = name;
this.dateTime = new Date();
-
}
public void setDateTime(@NonNull Date dateTime)
{
this.dateTime = dateTime;
}
+ public void setCaptured(boolean captured)
+ {
+ this.captured = captured;
+ }
+ public void setAperature(String av)
+ {
+ this.av = av;
+ }
+ public void setShutterSpeed(String tv)
+ {
+ this.tv = tv;
+ }
+ public void setIso(String sv)
+ {
+ this.sv = sv;
+ }
+ public void setExpRev(String xv)
+ {
+ this.xv = xv;
+ }
+ public void setOrientation(int orientation)
+ {
+ this.orientation = orientation;
+ }
+ public void setAspectRatio(String aspectRatio)
+ {
+ this.aspectRatio = aspectRatio;
+ }
+ public void setModel(String cameraModel)
+ {
+ this.cameraModel = cameraModel;
+ }
+ public void setLatLng(String latlng)
+ {
+ this.latlng = latlng;
+ }
@Override
public Date getDatetime()
{
return (name);
}
+
+ @Override
+ public String getAperature()
+ {
+ return (av);
+ }
+
+ @Override
+ public String getShutterSpeed()
+ {
+ return (tv);
+ }
+
+ @Override
+ public String getIsoSensitivity()
+ {
+ return (sv);
+ }
+
+ @Override
+ public String getExpRev()
+ {
+ return (xv);
+ }
+
+ @Override
+ public int getOrientation()
+ {
+ return (orientation);
+ }
+
+ @Override
+ public String getAspectRatio()
+ {
+ return (aspectRatio);
+ }
+
+ @Override
+ public String getModel()
+ {
+ return (cameraModel);
+ }
+
+ @Override
+ public String getLatLng()
+ {
+ return (latlng);
+ }
+
+ @Override
+ public boolean getCaptured()
+ {
+ return (captured);
+ }
}
--- /dev/null
+package net.osdn.gokigen.gr2control.camera.playback;
+
+public interface IContentInfoCallback
+{
+ void onErrorOccurred(Exception e);
+}
public interface IPlaybackControl
{
void downloadContentList(@NonNull IDownloadContentListCallback callback);
- void downloadContentScreennail(@NonNull String path, @NonNull IDownloadImageCallback callback);
+ void getContentInfo(@NonNull String path, @NonNull IContentInfoCallback callback);
+
+ void downloadContentScreennail(@NonNull String path, @NonNull IDownloadThumbnailImageCallback callback);
void downloadContentThumbnail(@NonNull String path, @NonNull IDownloadThumbnailImageCallback callback);
+ //void downloadContentScreennail(@NonNull String path, @NonNull IDownloadThumbnailImageCallback callback);
+ //void downloadContentThumbnail(@NonNull String path, @NonNull IDownloadThumbnailImageCallback callback);
void downloadImage(@NonNull String path, float resize, @NonNull IDownloadImageCallback callback);
void downloadLargeContent(@NonNull String path, @NonNull IDownloadLargeContentCallback callback);
}
import net.osdn.gokigen.gr2control.camera.ICameraFileInfo;
import net.osdn.gokigen.gr2control.camera.playback.CameraFileInfo;
+import net.osdn.gokigen.gr2control.camera.playback.IContentInfoCallback;
import net.osdn.gokigen.gr2control.camera.playback.IDownloadContentListCallback;
import net.osdn.gokigen.gr2control.camera.playback.IDownloadImageCallback;
import net.osdn.gokigen.gr2control.camera.playback.IDownloadLargeContentCallback;
import org.json.JSONObject;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
動画をダウンロードする : http://192.168.0.1/v1/photos/yyyRICOH/R0000xxx.MOV?size=full
*****/
-
RicohGr2PlaybackControl()
{
for (int fileIndex = 0; fileIndex < nofFiles; fileIndex++)
{
String fileName = filesArray.getString(fileIndex);
- fileList.add(new CameraFileInfo(dirName, fileName));
+ CameraFileInfo info = new CameraFileInfo(dirName, fileName);
+/*
+ try
+ {
+ updateCameraFileInfo(info);
+ //Log.v(TAG, ">> FILE INFO: " + info.getFilename() + " [" + info.getDatetime() + "] O : " + info.getOrientation() + " " + info.getModel());
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+*/
+ fileList.add(info);
}
}
}
callback.onCompleted(fileList);
}
- @Override
- public void downloadContentScreennail(@NonNull String path, @NonNull IDownloadImageCallback callback)
+ private void updateCameraFileInfo(CameraFileInfo info)
{
- Log.v(TAG, "downloadContentScreennail() : " + path);
+ String url = getPhotoUrl + info.getDirectoryPath() + "/" + info.getFilename() + "/info";
+ Log.v(TAG, "updateCameraFileInfo() GET URL : " + url);
+ try
+ {
+ String response = SimpleHttpClient.httpGet(url, DEFAULT_TIMEOUT);
+ if ((response == null)||(response.length() < 1))
+ {
+ return;
+ }
+ JSONObject object = new JSONObject(response);
+
+ // データを突っ込む
+ info.setCaptured(object.getBoolean("captured"));
+ String av = getJSONString(object, "av");
+ if (av != null)
+ {
+ info.setAperature(av);
+ }
+ String tv = getJSONString(object, "tv");
+ if (tv != null)
+ {
+ info.setShutterSpeed(tv);
+ }
+ String sv = getJSONString(object,"sv");
+ if (sv != null)
+ {
+ info.setIso(sv);
+ }
+ String xv = getJSONString(object,"xv");
+ if (xv != null)
+ {
+ info.setExpRev(xv);
+ }
+ info.setOrientation(object.getInt("orientation"));
+ String aspectRatio = getJSONString(object,"aspectRatio");
+ if (aspectRatio != null)
+ {
+ info.setAspectRatio(aspectRatio);
+ }
+ String cameraModel = getJSONString(object,"cameraModel");
+ if (cameraModel != null)
+ {
+ info.setModel(cameraModel);
+ }
+ String latLng = getJSONString(object,"latlng");
+ if (latLng != null)
+ {
+ info.setLatLng(latLng);
+ }
+ //info.setDateTime(new Date(object.getString("datetime")));
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ private String getJSONString(JSONObject object, String key)
+ {
+ String value = null;
+ try
+ {
+ value = object.getString(key);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return (value);
+ }
+
+ @Override
+ public void getContentInfo(@NonNull String path, @NonNull IContentInfoCallback callback)
+ {
+ String url = getPhotoUrl + path + "/info";
+ Log.v(TAG, "getContentInfo() GET URL : " + url);
+ try
+ {
+ String response = SimpleHttpClient.httpGet(url, DEFAULT_TIMEOUT);
+ if ((response == null)||(response.length() < 1))
+ {
+ callback.onErrorOccurred(new NullPointerException());
+ }
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ @Override
+ public void downloadContentScreennail(@NonNull String path, @NonNull IDownloadThumbnailImageCallback callback)
+ {
+ //Log.v(TAG, "downloadContentScreennail() : " + path);
+ String suffix = "?size=view";
+ String url = getPhotoUrl + path + suffix;
+ Log.v(TAG, "downloadContentScreennail() GET URL : " + url);
+ try
+ {
+ Bitmap bmp = SimpleHttpClient.httpGetBitmap(url, DEFAULT_TIMEOUT);
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("Orientation", 0);
+ callback.onCompleted(bmp, map);
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace();
+ }
}
@Override
}
String url = getPhotoUrl + path + suffix;
Log.v(TAG, "downloadContentThumbnail() GET URL : " + url);
- Bitmap bmp = SimpleHttpClient.httpGetBitmap(url, DEFAULT_TIMEOUT);
- HashMap<String, Object> map = new HashMap<>();
- map.put("Orientation", 0);
- callback.onCompleted(bmp, map);
+ try
+ {
+ Bitmap bmp = SimpleHttpClient.httpGetBitmap(url, DEFAULT_TIMEOUT);
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("Orientation", 0);
+ callback.onCompleted(bmp, map);
+ }
+ catch (Throwable e)
+ {
+ e.printStackTrace();
+ }
}
@Override
focalLengthArea = view.findViewById(R.id.focal_length_with_digital_zoom_view);
*/
connectStatus = view.findViewById(R.id.connect_disconnect_button);
- connectStatus.setOnClickListener(onClickTouchListener);
+ if (connectStatus != null)
+ {
+ connectStatus.setOnClickListener(onClickTouchListener);
+ }
}
catch (Exception e)
{
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
+import android.widget.ProgressBar;
import net.osdn.gokigen.gr2control.R;
import net.osdn.gokigen.gr2control.camera.ICameraFileInfo;
import net.osdn.gokigen.gr2control.camera.playback.IDownloadContentListCallback;
-import net.osdn.gokigen.gr2control.camera.playback.IDownloadImageCallback;
import net.osdn.gokigen.gr2control.camera.playback.IDownloadThumbnailImageCallback;
import net.osdn.gokigen.gr2control.camera.playback.IPlaybackControl;
import net.osdn.gokigen.gr2control.camera.playback.ProgressEvent;
+import net.osdn.gokigen.gr2control.playback.detail.ImageContentInfoEx;
+import net.osdn.gokigen.gr2control.playback.detail.ImagePagerViewFragment;
public class ImageGridViewFragment extends Fragment
{
});
try
{
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ showHideProgressBar(true);
+ }
+ });
thread.start();
}
catch (Exception e)
{
e.printStackTrace();
}
- }
+ }
+ private void showHideProgressBar(final boolean isVisible)
+ {
+ Activity activity = getActivity();
+ if (activity != null)
+ {
+ ProgressBar bar = getActivity().findViewById(R.id.progress_bar);
+ if (bar != null)
+ {
+ bar.setVisibility((isVisible) ? View.VISIBLE : View.GONE);
+ bar.invalidate();
+ }
+ }
+ }
private void refreshImpl()
{
contentList = null;
+ Log.v(TAG, "refreshImpl() start");
playbackControl.downloadContentList(new IDownloadContentListCallback() {
@Override
runOnUiThread(new Runnable() {
@Override
public void run() {
- gridView.invalidateViews();
+ showHideProgressBar(false);
+ gridView.invalidateViews();
}
});
}
runOnUiThread(new Runnable() {
@Override
public void run() {
- presentMessage("Load failed", message);
+ showHideProgressBar(false);
+ presentMessage("Load failed", message);
}
});
}
});
- }
+ Log.v(TAG, "refreshImpl() end");
+ }
private static class GridCellViewHolder
{
import android.util.AttributeSet;
import android.view.View;
+import net.osdn.gokigen.gr2control.playback.detail.ScalableImageView;
+
/**
*
*
-package net.osdn.gokigen.gr2control.playback;
+package net.osdn.gokigen.gr2control.playback.detail;
import android.support.media.ExifInterface;
import android.util.Log;
return (msg);
}
-
}
-package net.osdn.gokigen.gr2control.playback;
+package net.osdn.gokigen.gr2control.playback.detail;
import net.osdn.gokigen.gr2control.camera.ICameraFileInfo;
-class ImageContentInfoEx
+public class ImageContentInfoEx
{
private final ICameraFileInfo fileInfo;
private boolean hasRaw;
- ImageContentInfoEx(ICameraFileInfo fileInfo, boolean hasRaw)
+ public ImageContentInfoEx(ICameraFileInfo fileInfo, boolean hasRaw)
{
this.fileInfo = fileInfo;
this.hasRaw = hasRaw;
}
- void setHasRaw(boolean value)
+ public void setHasRaw(boolean value)
{
hasRaw = value;
}
- boolean hasRaw()
+ public boolean hasRaw()
{
return (hasRaw);
}
- ICameraFileInfo getFileInfo()
+ public ICameraFileInfo getFileInfo()
{
return (fileInfo);
}
-package net.osdn.gokigen.gr2control.playback;
+package net.osdn.gokigen.gr2control.playback.detail;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
+import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import net.osdn.gokigen.gr2control.camera.ICameraFileInfo;
import net.osdn.gokigen.gr2control.camera.playback.IDownloadImageCallback;
import net.osdn.gokigen.gr2control.camera.playback.IDownloadLargeContentCallback;
+import net.osdn.gokigen.gr2control.camera.playback.IDownloadThumbnailImageCallback;
import net.osdn.gokigen.gr2control.camera.playback.IPlaybackControl;
import net.osdn.gokigen.gr2control.camera.playback.ProgressEvent;
-
public class ImagePagerViewFragment extends Fragment
{
private final String TAG = this.toString();
- //private final float IMAGE_RESIZE_FOR_GET_INFORMATION = 640.0f;
private final String JPEG_SUFFIX = ".jpg";
private final String RAW_SUFFIX = ".dng";
private IPlaybackControl playbackControl;
private ViewPager viewPager = null;
private LruCache<String, Bitmap> imageCache =null;
- private MyImageDownloader imageDownloader = null;
- private MyMovieDownloader movieDownloader = null;
-
-
- static ImagePagerViewFragment newInstance(@NonNull IPlaybackControl playbackControl, @NonNull List<ImageContentInfoEx> contentList, int contentIndex)
+ public static ImagePagerViewFragment newInstance(@NonNull IPlaybackControl playbackControl, @NonNull List<ImageContentInfoEx> contentList, int contentIndex)
{
ImagePagerViewFragment fragment = new ImagePagerViewFragment();
fragment.setInterface(playbackControl);
private void setContentList(@NonNull List<ImageContentInfoEx> contentList, int contentIndex)
{
this.contentList = contentList;
+ this.contentIndex = contentIndex;
}
@Override
{
layoutInflater = inflater;
View view = layoutInflater.inflate(R.layout.fragment_image_pager_view, container, false);
- viewPager = (ViewPager)view.findViewById(R.id.viewPager1);
+ viewPager = view.findViewById(R.id.viewPager1);
viewPager.setAdapter(new ImagePagerAdapter());
viewPager.addOnPageChangeListener(new ImagePageChangeListener());
- return view;
+ return (view);
}
@Override
{
boolean doDownload = false;
boolean getInformation = false;
- float downloadSize = 0;
+ boolean isSmallSize = false;
String specialSuffix = null;
if ((item.getItemId() == R.id.action_get_information)||(item.getItemId() == R.id.action_get_information_raw))
{
- //downloadSize = OLYCamera.IMAGE_RESIZE_1024;
getInformation = true;
- doDownload = true;
}
else if ((item.getItemId() == R.id.action_download_original_size)||(item.getItemId() == R.id.action_download_original_size_raw))
{
- //downloadSize = OLYCamera.IMAGE_RESIZE_NONE;
- doDownload = true;
- }
- else if ((item.getItemId() == R.id.action_download_2048x1536)||(item.getItemId() == R.id.action_download_2048x1536_raw))
- {
- //downloadSize = OLYCamera.IMAGE_RESIZE_2048;
- doDownload = true;
- }
- else if ((item.getItemId() == R.id.action_download_1920x1440)||(item.getItemId() == R.id.action_download_1920x1440_raw))
- {
- //downloadSize = OLYCamera.IMAGE_RESIZE_1920;
doDownload = true;
}
- else if ((item.getItemId() == R.id.action_download_1600x1200)||(item.getItemId() == R.id.action_download_1600x1200_raw))
+ else if ((item.getItemId() == R.id.action_download_640x480)||(item.getItemId() == R.id.action_download_640x480_raw))
{
- //downloadSize = OLYCamera.IMAGE_RESIZE_1600;
- doDownload = true;
- }
- else if ((item.getItemId() == R.id.action_download_1024x768)||(item.getItemId() == R.id.action_download_1024x768_raw))
- {
- //downloadSize = OLYCamera.IMAGE_RESIZE_1024;
- doDownload = true;
- }
+ isSmallSize = true;
+ doDownload = true;
+ }
else if (item.getItemId() == R.id.action_download_original_movie)
{
- //downloadSize = OLYCamera.IMAGE_RESIZE_NONE;
doDownload = true;
}
else if (item.getItemId() == R.id.action_download_raw)
{
doDownload = true;
- //downloadSize = OLYCamera.IMAGE_RESIZE_NONE;
specialSuffix = RAW_SUFFIX;
}
+ if (getInformation)
+ {
+ showFileInformation((contentList.get(contentIndex)).getFileInfo());
+ }
+
+ /*
if (doDownload)
{
try
e.printStackTrace();
}
}
- return super.onOptionsItemSelected(item);
+*/
+ return (super.onOptionsItemSelected(item));
}
-
- @Override
+
+ private void showFileInformation(final ICameraFileInfo fileInfo)
+ {
+ runOnUiThread(new Runnable() {
+ @Override
+ public void run() {
+ String message = "";
+ try {
+ String model = fileInfo.getModel();
+ String dateTime = "";
+ Date date = fileInfo.getDatetime();
+ if (date != null) {
+ dateTime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss", Locale.US).format(date);
+ }
+ String path = fileInfo.getDirectoryPath() + "/" + fileInfo.getFilename();
+ String shutter = fileInfo.getShutterSpeed();
+ shutter = shutter.replace(".", "/");
+ String aperture = fileInfo.getAperature();
+ String iso = fileInfo.getIsoSensitivity();
+ String expRev = fileInfo.getExpRev();
+
+ message = path + "\r\n" + dateTime + "\r\n" + "- - - - - - - - - -\r\n " + shutter + " F" + aperture + " (" + expRev + ")" + " ISO" + iso + "\r\n" + "- - - - - - - - - -\r\n" + " model : " + model + "\r\n";
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ presentMessage(getString(R.string.download_control_get_information_title), message);
+ System.gc();
+ }
+ });
+
+ }
+
+ @Override
public void onResume()
{
super.onResume();
}
}
-
private class ImagePagerAdapter extends PagerAdapter
{
ICameraFileInfo file = (contentList.get(contentIndex)).getFileInfo();
String path = file.getDirectoryPath() + "/" + file.getFilename();
- /**
- try
- {
- // 試しにコンテンツ情報を取得してみる ... アートフィルターの設定情報はとれる
- Map<String, Object> content = camera.inquireContentInformation(path);
- for (String key : content.keySet())
- {
- Log.v(TAG, "INFO: " + key + " " + content.get(key).toString());
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
- **/
-
- AppCompatActivity activity = (AppCompatActivity)getActivity();
+ AppCompatActivity activity = (AppCompatActivity) getActivity();
if (activity != null)
{
ActionBar bar = activity.getSupportActionBar();
e.printStackTrace();
}
}
+ }
+ private void downloadImage(final int position, final ImageView view)
+ {
+ Thread thread = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ downloadImageImpl(position, view);
+ }
+ });
+ try
+ {
+ thread.start();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
- private void downloadImage(int position, final ImageView view)
+ private void downloadImageImpl(int position, final ImageView view)
{
try
{
final String path = file.getDirectoryPath() + "/" + file.getFilename();
// Get the cached image.
- Bitmap bitmap = imageCache.get(path);
- if (bitmap != null) {
- if (view != null && viewPager.indexOfChild(view) > -1) {
- view.setImageBitmap(bitmap);
+ final Bitmap bitmap = imageCache.get(path);
+ if (bitmap != null)
+ {
+ if (view != null && viewPager.indexOfChild(view) > -1)
+ {
+ runOnUiThread(new Runnable()
+ {
+ @Override
+ public void run()
+ {
+ view.setImageBitmap(bitmap);
+ }
+ });
}
return;
}
// Download the image.
- playbackControl.downloadContentScreennail(path, new IDownloadImageCallback() {
+ playbackControl.downloadContentScreennail(path, new IDownloadThumbnailImageCallback() {
@Override
public void onProgress(ProgressEvent e) {
// MARK: Do not use to cancel a downloading by progress handler.
}
@Override
- public void onCompleted(final byte[] data, final Map<String, Object> metadata) {
+ //public void onCompleted(final byte[] data, final Map<String, Object> metadata) {
+ public void onCompleted(final Bitmap bitmap, final Map<String, Object> metadata) {
// Cache the downloaded image.
- final Bitmap bitmap = createRotatedBitmap(data, metadata);
+ //final Bitmap bitmap = createRotatedBitmap(data, metadata);
try {
if (bitmap == null)
{
*/
public void saveImageWithDialog(final String filename, float downloadSize, boolean isGetInformationMode)
{
- if (filename.endsWith(JPEG_SUFFIX))
- {
- // 静止画の取得
- imageDownloader = new MyImageDownloader(filename, downloadSize, isGetInformationMode);
- imageDownloader.startDownload();
- }
- else
- {
- // 動画・RAWファイルの取得
- movieDownloader = new MyMovieDownloader(filename);
- movieDownloader.startDownload();
- }
+ try
+ {
+ if (filename.endsWith(JPEG_SUFFIX)) {
+ // 静止画の取得
+ MyImageDownloader imageDownloader = new MyImageDownloader(filename, downloadSize, isGetInformationMode);
+ imageDownloader.startDownload();
+ } else {
+ // 動画・RAWファイルの取得
+ MyMovieDownloader movieDownloader = new MyMovieDownloader(filename);
+ movieDownloader.startDownload();
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
}
getActivity().runOnUiThread(action);
}
-
private Bitmap createRotatedBitmap(byte[] data, Map<String, Object> metadata)
{
Bitmap bitmap;
@Override
public void onCompleted(byte[] bytes, Map<String, Object> map)
{
+/*
if (isGetInformation) {
// Exif情報をダイアログ表示して終わる
showExifInformation(bytes);
System.gc();
return;
}
-
+*/
final String directoryPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath() + "/" + getString(R.string.app_name2) + "/";
final String filepath = new File(directoryPath.toLowerCase(), filename).getPath();
{
long now = System.currentTimeMillis();
ContentValues values = new ContentValues();
- ContentResolver resolver = getActivity().getContentResolver();
values.put(Images.Media.MIME_TYPE, "image/jpeg");
values.put(Images.Media.DATA, filepath);
values.put(Images.Media.DATE_ADDED, now);
values.put(Images.Media.DATE_TAKEN, now);
- if ((hasGps)&&(latLong.length >= 2))
+ values.put(Images.Media.DATE_MODIFIED, now);
+ values.put(Images.Media.ORIENTATION, getRotationDegrees(bytes, map));
+ if (hasGps)
{
values.put(MediaStore.Images.Media.LATITUDE, latLong[0]);
values.put(MediaStore.Images.Media.LONGITUDE, latLong[1]);
}
- values.put(Images.Media.DATE_MODIFIED, now);
- values.put(Images.Media.ORIENTATION, getRotationDegrees(bytes, map));
- final Uri insertedImage = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
+ Activity activity = getActivity();
+ if (activity != null)
+ {
+ ContentResolver resolver = getActivity().getContentResolver();
+ final Uri insertedImage = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
+ }
runOnUiThread(new Runnable() {
@Override
}
}
+
+
/**
* EXIF情報の表示 (ExifInterface を作って、表示クラスに渡す)
*
-package net.osdn.gokigen.gr2control.playback;
+package net.osdn.gokigen.gr2control.playback.detail;
import android.content.Context;
import android.graphics.Bitmap;
android:verticalSpacing="2dp" >
</GridView>
-</LinearLayout>
\ No newline at end of file
+ <ProgressBar
+ android:id="@+id/progress_bar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:visibility="gone"
+ />
+</LinearLayout>
android:scaleType="centerCrop"
android:src="@null"
tools:ignore="ContentDescription" />
-
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<view xmlns:android="http://schemas.android.com/apk/res/android"
- class="jp.osdn.gokigen.aira01a.playback.ScalableImageView"
+ class="net.osdn.gokigen.gr2control.playback.detail.ScalableImageView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:id="@+id/action_download_original_size"
compat:showAsAction="never"
android:title="@string/action_download_original_size"/>
-
- <item
- android:id="@+id/action_download_2048x1536"
- compat:showAsAction="never"
- android:title="@string/action_download_2048x1536"/>
-
- <item
- android:id="@+id/action_download_1920x1440"
- compat:showAsAction="never"
- android:title="@string/action_download_1920x1440"/>
-
- <item
- android:id="@+id/action_download_1600x1200"
- compat:showAsAction="never"
- android:title="@string/action_download_1600x1200"/>
-
- <item
- android:id="@+id/action_download_1024x768"
- compat:showAsAction="never"
- android:title="@string/action_download_1024x768"/>
+
+ <item
+ android:id="@+id/action_download_640x480"
+ compat:showAsAction="never"
+ android:title="@string/action_download_640x480"/>
<!--
<item
android:id="@+id/action_download_original_size_raw"
compat:showAsAction="never"
android:title="@string/action_download_original_size"/>
-
- <item
- android:id="@+id/action_download_2048x1536_raw"
- compat:showAsAction="never"
- android:title="@string/action_download_2048x1536"/>
-
- <item
- android:id="@+id/action_download_1920x1440_raw"
- compat:showAsAction="never"
- android:title="@string/action_download_1920x1440"/>
-
- <item
- android:id="@+id/action_download_1600x1200_raw"
- compat:showAsAction="never"
- android:title="@string/action_download_1600x1200"/>
-
- <item
- android:id="@+id/action_download_1024x768_raw"
- compat:showAsAction="never"
- android:title="@string/action_download_1024x768"/>
+
+ <item
+ android:id="@+id/action_download_640x480_raw"
+ compat:showAsAction="never"
+ android:title="@string/action_download_640x480"/>
<!---->
<item
<string name="action_download_1920x1440">1920 x 1440</string>
<string name="action_download_1600x1200">1600 x 1200</string>
<string name="action_download_1024x768">1024 x 768</string>
+ <string name="action_download_640x480">Small Size</string>
<string name="action_download_raw">RAW</string>
<string name="action_delete_picture">Delete</string>