OSDN Git Service

Fix b/5974663: inconsistent transparency of disabled action buttons.
authorYuli Huang <yuli@google.com>
Thu, 9 Feb 2012 07:21:40 +0000 (15:21 +0800)
committerYuli Huang <yuli@google.com>
Thu, 9 Feb 2012 07:21:40 +0000 (15:21 +0800)
1. Avoid gray out save-button again as disabled alpha is already applied
to all text buttons.
2. Reduce disabled alpha of image buttons to make them look consistent
with text buttons.

Change-Id: Ie76988db1424ce036470a754acd2e4501979dd1a

res/layout/photoeditor_actionbar.xml
res/layout/photoeditor_effects_menu.xml
src/com/android/gallery3d/photoeditor/ImageActionButton.java [new file with mode: 0644]
src/com/android/gallery3d/photoeditor/RestorableView.java

index 8bd51ed..e0adbbe 100644 (file)
 
     <LinearLayout style="@style/ActionBarLinearLayout" android:layout_alignParentRight="true">
 
-        <ImageButton
+        <com.android.gallery3d.photoeditor.ImageActionButton
             android:id="@+id/undo_button"
             style="@style/ImageActionButton"
             android:src="@drawable/photoeditor_undo"/>
-        <ImageButton
+        <com.android.gallery3d.photoeditor.ImageActionButton
             android:id="@+id/redo_button"
             style="@style/ImageActionButton"
             android:src="@drawable/photoeditor_redo"/>
@@ -54,7 +54,7 @@
                 style="@style/TextActionButton"
                 android:layout_width="fill_parent"
                 android:text="@string/save"/>
-            <ImageButton
+            <com.android.gallery3d.photoeditor.ImageActionButton
                 android:id="@+id/share_button"
                 style="@style/ImageActionButton"
                 android:layout_width="fill_parent"
index 1688a90..a0b102d 100644 (file)
         android:id="@+id/toggles"
         style="@style/EffectsMenuContainer">
 
-        <ImageButton
+        <com.android.gallery3d.photoeditor.ImageActionButton
             android:id="@+id/exposure_button"
             style="@style/EffectsMenuActionButton"
             android:src="@drawable/photoeditor_exposure"/>
-        <ImageButton
+        <com.android.gallery3d.photoeditor.ImageActionButton
             android:id="@+id/artistic_button"
             style="@style/EffectsMenuActionButton"
             android:src="@drawable/photoeditor_artistic"/>
-        <ImageButton
+        <com.android.gallery3d.photoeditor.ImageActionButton
             android:id="@+id/color_button"
             style="@style/EffectsMenuActionButton"
             android:src="@drawable/photoeditor_color"/>
-        <ImageButton
+        <com.android.gallery3d.photoeditor.ImageActionButton
             android:id="@+id/fix_button"
             style="@style/EffectsMenuActionButton"
             android:src="@drawable/photoeditor_fix"/>
diff --git a/src/com/android/gallery3d/photoeditor/ImageActionButton.java b/src/com/android/gallery3d/photoeditor/ImageActionButton.java
new file mode 100644 (file)
index 0000000..a919ac6
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * 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 com.android.gallery3d.photoeditor;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.widget.ImageButton;
+
+/**
+ * Image buttons used in Action-bar and Effects-menu that can be grayed out when set disabled.
+ * (Text buttons are automatically grayed out when disabled; however, image buttons are not.)
+ */
+public class ImageActionButton extends ImageButton {
+
+    private static final float ENABLED_ALPHA = 1;
+    private static final float DISABLED_ALPHA = 0.28f;
+
+    public ImageActionButton(Context context, AttributeSet attrs) {
+        super(context, attrs);
+    }
+
+    @Override
+    public void setEnabled(boolean enabled) {
+        super.setEnabled(enabled);
+        setAlpha(enabled ? ENABLED_ALPHA : DISABLED_ALPHA);
+    }
+}
index fc98741..705b412 100644 (file)
@@ -32,9 +32,6 @@ import java.util.Map.Entry;
  */
 public abstract class RestorableView extends FrameLayout {
 
-    private static final float ENABLED_ALPHA = 1;
-    private static final float DISABLED_ALPHA = 0.47f;
-
     private final HashMap<Integer, Runnable> clickRunnables = new HashMap<Integer, Runnable>();
     private final HashSet<Integer> changedViews = new HashSet<Integer>();
     private final LayoutInflater inflater;
@@ -92,9 +89,7 @@ public abstract class RestorableView extends FrameLayout {
     }
 
     public void setViewEnabled(int id, boolean enabled) {
-        View view = findViewById(id);
-        view.setEnabled(enabled);
-        view.setAlpha(enabled ? ENABLED_ALPHA : DISABLED_ALPHA);
+        findViewById(id).setEnabled(enabled);
         // Track views whose enabled status has been updated.
         changedViews.add(id);
     }