OSDN Git Service

Only translate the main panel if we have to.
authornicolasroard <nicolasroard@google.com>
Sun, 21 Oct 2012 21:53:03 +0000 (14:53 -0700)
committernicolasroard <nicolasroard@google.com>
Sun, 21 Oct 2012 22:14:54 +0000 (15:14 -0700)
bug:7386882
Change-Id: Ib670eb4e513f0bbebd3ecca052fe27180dcf5fdc

res/layout/filtershow_activity.xml
src/com/android/gallery3d/filtershow/FilterShowActivity.java
src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
src/com/android/gallery3d/filtershow/imageshow/ImageSlave.java

index e07cb1c..9ccb755 100644 (file)
@@ -18,6 +18,7 @@
 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:id="@+id/mainView"
     android:background="@color/background_screen" >
 
     <LinearLayout
     </LinearLayout>
 
     <LinearLayout
-        android:id="@+id/historyPanel"
-        android:layout_width="200dip"
-        android:layout_height="match_parent"
-        android:layout_gravity="right"
-        android:orientation="vertical"
-        android:visibility="invisible" >
-
-        <TextView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:background="@android:color/transparent"
-            android:gravity="center"
-            android:padding="2dip"
-            android:text="@string/history"
-            android:textColor="@android:color/white"
-            android:textSize="24sp"
-            android:textStyle="bold" />
-
-        <ListView
-            android:id="@+id/operationsList"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:layout_weight="1" >
-        </ListView>
-
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:orientation="horizontal" >
-
-            <Button
-                android:id="@+id/resetOperationsButton"
-                style="@style/FilterShowHistoryButton"
-                android:gravity="center"
-                android:text="@string/reset" />
-
-            <Button
-                android:id="@+id/saveOperationsButton"
-                style="@style/FilterShowHistoryButton"
-                android:text="@string/save"
-                android:visibility="gone" />
-        </LinearLayout>
-    </LinearLayout>
-
-    <LinearLayout
         android:id="@+id/mainPanel"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         </com.android.gallery3d.filtershow.CenteredLinearLayout>
     </LinearLayout>
 
+    <LinearLayout
+        android:id="@+id/historyPanel"
+        android:layout_width="200dip"
+        android:layout_height="match_parent"
+        android:layout_gravity="right"
+        android:orientation="vertical"
+        android:visibility="invisible" >
+
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="@android:color/transparent"
+            android:gravity="center"
+            android:padding="2dip"
+            android:text="@string/history"
+            android:textColor="@android:color/white"
+            android:textSize="24sp"
+            android:textStyle="bold" />
+
+        <ListView
+            android:id="@+id/operationsList"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_weight="1" >
+        </ListView>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal" >
+
+            <Button
+                android:id="@+id/resetOperationsButton"
+                style="@style/FilterShowHistoryButton"
+                android:gravity="center"
+                android:text="@string/reset" />
+
+            <Button
+                android:id="@+id/saveOperationsButton"
+                style="@style/FilterShowHistoryButton"
+                android:text="@string/save"
+                android:visibility="gone" />
+        </LinearLayout>
+    </LinearLayout>
+
 </FrameLayout>
index 2cdc22e..cac8aad 100644 (file)
@@ -353,6 +353,17 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
         }
     }
 
+    private int translateMainPanel(View viewPanel) {
+        int accessoryPanelWidth = viewPanel.getWidth();
+        int mainViewWidth = findViewById(R.id.mainView).getWidth();
+        int mainPanelWidth = mImageShow.getDisplayedImageBounds().width();
+        int leftOver = mainViewWidth - mainPanelWidth - accessoryPanelWidth;
+        if (leftOver < 0) {
+            return -accessoryPanelWidth;
+        }
+        return 0;
+    }
+
     private int getScreenImageSize() {
         DisplayMetrics metrics = new DisplayMetrics();
         Display display = getWindowManager().getDefaultDisplay();
@@ -666,9 +677,10 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
             mShowingHistoryPanel = false;
         }
 
+        int translate = translateMainPanel(viewList);
         if (!mShowingImageStatePanel) {
             mShowingImageStatePanel = true;
-            view.animate().setDuration(200).x(-viewList.getWidth())
+            view.animate().setDuration(200).x(translate)
                     .withLayer().withEndAction(new Runnable() {
                         @Override
                         public void run() {
@@ -699,9 +711,10 @@ public class FilterShowActivity extends Activity implements OnItemClickListener,
             mShowingImageStatePanel = false;
         }
 
+        int translate = translateMainPanel(viewList);
         if (!mShowingHistoryPanel) {
             mShowingHistoryPanel = true;
-            view.animate().setDuration(200).x(-viewList.getWidth())
+            view.animate().setDuration(200).x(translate)
                     .withLayer().withEndAction(new Runnable() {
                         @Override
                         public void run() {
index 61f998d..40da572 100644 (file)
@@ -312,6 +312,10 @@ public class ImageShow extends View implements OnGestureListener,
         return dst;
     }
 
+    public Rect getDisplayedImageBounds() {
+        return mImageBounds;
+    }
+
     public ImagePreset getImagePreset() {
         return mImagePreset;
     }
index c1fb0e4..ba4da91 100644 (file)
@@ -18,6 +18,7 @@ package com.android.gallery3d.filtershow.imageshow;
 
 import android.content.Context;
 import android.graphics.Canvas;
+import android.graphics.Rect;
 import android.util.AttributeSet;
 
 import com.android.gallery3d.filtershow.HistoryAdapter;
@@ -55,6 +56,11 @@ public class ImageSlave extends ImageShow {
     }
 
     @Override
+    public Rect getDisplayedImageBounds() {
+        return mMasterImageShow.getDisplayedImageBounds();
+    }
+
+    @Override
     public void setImagePreset(ImagePreset preset, boolean addToHistory) {
         mMasterImageShow.setImagePreset(preset, addToHistory);
     }