diff options
author | nicolasroard <nicolasroard@google.com> | 2013-09-11 17:46:38 -0700 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-09-11 17:46:38 -0700 |
commit | b203968cc53015d9c51b790a56cca638be77818d (patch) | |
tree | caa262123a49d4e3419a08dafd914e0e5de79706 /src/com/android/gallery3d/filtershow/info | |
parent | 9346e7fdd448c5ddfc3e47c067618ca0ac9c72fa (diff) | |
download | android_packages_apps_Gallery2-b203968cc53015d9c51b790a56cca638be77818d.tar.gz android_packages_apps_Gallery2-b203968cc53015d9c51b790a56cca638be77818d.tar.bz2 android_packages_apps_Gallery2-b203968cc53015d9c51b790a56cca638be77818d.zip |
Fix info panel
bug:10705772
Change-Id: I9481aec8baf1a7b1782be5cf47acbf3269768cee
Diffstat (limited to 'src/com/android/gallery3d/filtershow/info')
-rw-r--r-- | src/com/android/gallery3d/filtershow/info/HistogramView.java | 65 | ||||
-rw-r--r-- | src/com/android/gallery3d/filtershow/info/InfoPanel.java | 29 |
2 files changed, 48 insertions, 46 deletions
diff --git a/src/com/android/gallery3d/filtershow/info/HistogramView.java b/src/com/android/gallery3d/filtershow/info/HistogramView.java index ad56fe47a..99cf235bf 100644 --- a/src/com/android/gallery3d/filtershow/info/HistogramView.java +++ b/src/com/android/gallery3d/filtershow/info/HistogramView.java @@ -27,15 +27,15 @@ import android.graphics.PorterDuffXfermode; import android.os.AsyncTask; import android.util.AttributeSet; import android.view.View; -import com.android.gallery3d.filtershow.imageshow.Spline; public class HistogramView extends View { private Bitmap mBitmap; - int[] redHistogram = new int[256]; - int[] greenHistogram = new int[256]; - int[] blueHistogram = new int[256]; - Path gHistoPath = new Path(); + private Paint mPaint = new Paint(); + private int[] redHistogram = new int[256]; + private int[] greenHistogram = new int[256]; + private int[] blueHistogram = new int[256]; + private Path mHistoPath = new Path(); class ComputeHistogramTask extends AsyncTask<Bitmap, Void, int[]> { @Override @@ -85,28 +85,29 @@ public class HistogramView extends View { max = histogram[i]; } } - float w = getWidth() - Spline.curveHandleSize(); - float h = getHeight() - Spline.curveHandleSize() / 2.0f; - float dx = Spline.curveHandleSize() / 2.0f; + float w = getWidth(); // - Spline.curveHandleSize(); + float h = getHeight(); // - Spline.curveHandleSize() / 2.0f; + float dx = 0; // Spline.curveHandleSize() / 2.0f; float wl = w / histogram.length; float wh = h / max; - Paint paint = new Paint(); - paint.setARGB(100, 255, 255, 255); - paint.setStrokeWidth((int) Math.ceil(wl)); + + mPaint.reset(); + mPaint.setAntiAlias(true); + mPaint.setARGB(100, 255, 255, 255); + mPaint.setStrokeWidth((int) Math.ceil(wl)); // Draw grid - paint.setStyle(Paint.Style.STROKE); - canvas.drawRect(dx, 0, dx + w, h, paint); - canvas.drawLine(dx + w / 3, 0, dx + w / 3, h, paint); - canvas.drawLine(dx + 2 * w / 3, 0, dx + 2 * w / 3, h, paint); - paint.setStyle(Paint.Style.FILL_AND_STROKE); + mPaint.setStyle(Paint.Style.STROKE); + canvas.drawRect(dx, 0, dx + w, h, mPaint); + canvas.drawLine(dx + w / 3, 0, dx + w / 3, h, mPaint); + canvas.drawLine(dx + 2 * w / 3, 0, dx + 2 * w / 3, h, mPaint); - Paint paint2 = new Paint(); - paint2.setColor(color); - paint2.setStrokeWidth(6); - paint2.setXfermode(new PorterDuffXfermode(mode)); - gHistoPath.reset(); - gHistoPath.moveTo(dx, h); + mPaint.setStyle(Paint.Style.FILL); + mPaint.setColor(color); + mPaint.setStrokeWidth(6); + mPaint.setXfermode(new PorterDuffXfermode(mode)); + mHistoPath.reset(); + mHistoPath.moveTo(dx, h); boolean firstPointEncountered = false; float prev = 0; float last = 0; @@ -116,22 +117,22 @@ public class HistogramView extends View { if (l != 0) { float v = h - (l + prev) / 2.0f; if (!firstPointEncountered) { - gHistoPath.lineTo(x, h); + mHistoPath.lineTo(x, h); firstPointEncountered = true; } - gHistoPath.lineTo(x, v); + mHistoPath.lineTo(x, v); prev = l; last = x; } } - gHistoPath.lineTo(last, h); - gHistoPath.lineTo(w, h); - gHistoPath.close(); - canvas.drawPath(gHistoPath, paint2); - paint2.setStrokeWidth(2); - paint2.setStyle(Paint.Style.STROKE); - paint2.setARGB(255, 200, 200, 200); - canvas.drawPath(gHistoPath, paint2); + mHistoPath.lineTo(last, h); + mHistoPath.lineTo(w, h); + mHistoPath.close(); + canvas.drawPath(mHistoPath, mPaint); + mPaint.setStrokeWidth(2); + mPaint.setStyle(Paint.Style.STROKE); + mPaint.setARGB(255, 200, 200, 200); + canvas.drawPath(mHistoPath, mPaint); } public void onDraw(Canvas canvas) { diff --git a/src/com/android/gallery3d/filtershow/info/InfoPanel.java b/src/com/android/gallery3d/filtershow/info/InfoPanel.java index 39102f186..3a6657849 100644 --- a/src/com/android/gallery3d/filtershow/info/InfoPanel.java +++ b/src/com/android/gallery3d/filtershow/info/InfoPanel.java @@ -20,11 +20,12 @@ import android.graphics.Bitmap; import android.graphics.Rect; import android.net.Uri; import android.os.Bundle; -import android.support.v4.app.Fragment; +import android.support.v4.app.DialogFragment; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.view.Window; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; @@ -32,13 +33,12 @@ import android.widget.TextView; import com.android.gallery3d.R; import com.android.gallery3d.exif.ExifInterface; import com.android.gallery3d.exif.ExifTag; -import com.android.gallery3d.filtershow.FilterShowActivity; import com.android.gallery3d.filtershow.cache.ImageLoader; import com.android.gallery3d.filtershow.imageshow.MasterImage; import java.util.List; -public class InfoPanel extends Fragment { +public class InfoPanel extends DialogFragment { public static final String FRAGMENT_TAG = "InfoPanel"; private static final String LOGTAG = FRAGMENT_TAG; private LinearLayout mMainView; @@ -46,7 +46,6 @@ public class InfoPanel extends Fragment { private TextView mImageName; private TextView mImageSize; private TextView mExifData; - private ImageButton mHideButton; private String createStringFromIfFound(ExifTag exifTag, int tag, int str) { String exifString = ""; @@ -63,6 +62,9 @@ public class InfoPanel extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + if (getDialog() != null) { + getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE); + } mMainView = (LinearLayout) inflater.inflate( R.layout.filtershow_info_panel, null, false); @@ -74,19 +76,11 @@ public class InfoPanel extends Fragment { mImageName = (TextView) mMainView.findViewById(R.id.imageName); mImageSize = (TextView) mMainView.findViewById(R.id.imageSize); mExifData = (TextView) mMainView.findViewById(R.id.exifData); - mHideButton =(ImageButton) mMainView.findViewById(R.id.cancelInfo); + TextView exifLabel = (TextView) mMainView.findViewById(R.id.exifLabel); HistogramView histogramView = (HistogramView) mMainView.findViewById(R.id.histogramView); - histogramView.setBitmap(bitmap); - mHideButton.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - FilterShowActivity activity = (FilterShowActivity)getActivity(); - activity.toggleInformationPanel(); - } - }); Uri uri = MasterImage.getImage().getUri(); String path = ImageLoader.getLocalPathFromUri(getActivity(), uri); Uri localUri = null; @@ -102,6 +96,7 @@ public class InfoPanel extends Fragment { List<ExifTag> exif = MasterImage.getImage().getEXIF(); String exifString = ""; + boolean hasExifData = false; if (exif != null) { for (ExifTag tag : exif) { exifString += createStringFromIfFound(tag, @@ -131,9 +126,15 @@ public class InfoPanel extends Fragment { exifString += createStringFromIfFound(tag, ExifInterface.TAG_COPYRIGHT, R.string.filtershow_exif_copyright); + hasExifData = true; } } - mExifData.setText(Html.fromHtml(exifString)); + if (hasExifData) { + exifLabel.setVisibility(View.VISIBLE); + mExifData.setText(Html.fromHtml(exifString)); + } else { + exifLabel.setVisibility(View.GONE); + } return mMainView; } } |