summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2012-04-03 15:40:54 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-04-03 15:40:54 -0700
commit21aec19d3041fe040004dd32eef0cfd1bafd6fb6 (patch)
treea537409db7054f2faa88b2661cbec9a113bcb7e6 /core/java/android/widget
parent66ac90276a07b63ad74761d0bd0f1a7218babfbf (diff)
parentdb8c9a6a4d9bf8c39f834b25611926caf21380f6 (diff)
downloadframeworks_base-21aec19d3041fe040004dd32eef0cfd1bafd6fb6.zip
frameworks_base-21aec19d3041fe040004dd32eef0cfd1bafd6fb6.tar.gz
frameworks_base-21aec19d3041fe040004dd32eef0cfd1bafd6fb6.tar.bz2
Merge "Optimization of alpha with DisplayList properties"
Diffstat (limited to 'core/java/android/widget')
-rw-r--r--core/java/android/widget/ImageView.java11
-rw-r--r--core/java/android/widget/TextView.java12
2 files changed, 21 insertions, 2 deletions
diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java
index b1a75e1..91e2e49 100644
--- a/core/java/android/widget/ImageView.java
+++ b/core/java/android/widget/ImageView.java
@@ -201,7 +201,7 @@ public class ImageView extends View {
@Override
protected boolean onSetAlpha(int alpha) {
- if (getBackground() == null) {
+ if (!USE_DISPLAY_LIST_PROPERTIES && getBackground() == null) {
int scale = alpha + (alpha >> 7);
if (mViewAlphaScale != scale) {
mViewAlphaScale = scale;
@@ -214,6 +214,15 @@ public class ImageView extends View {
}
@Override
+ public boolean hasOverlappingRendering() {
+ if (!USE_DISPLAY_LIST_PROPERTIES) {
+ return super.hasOverlappingRendering();
+ } else {
+ return (getBackground() != null);
+ }
+ }
+
+ @Override
public void onPopulateAccessibilityEvent(AccessibilityEvent event) {
super.onPopulateAccessibilityEvent(event);
CharSequence contentDescription = getContentDescription();
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index 2a81f08..d2a1755 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4268,7 +4268,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
protected boolean onSetAlpha(int alpha) {
// Alpha is supported if and only if the drawing can be done in one pass.
// TODO text with spans with a background color currently do not respect this alpha.
- if (getBackground() == null) {
+ if (!USE_DISPLAY_LIST_PROPERTIES &&
+ (getBackground() != null || mText instanceof Spannable || hasSelection())) {
if (mCurrentAlpha != alpha) {
mCurrentAlpha = alpha;
final Drawables dr = mDrawables;
@@ -4292,6 +4293,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
return false;
}
+ @Override
+ public boolean hasOverlappingRendering() {
+ if (!USE_DISPLAY_LIST_PROPERTIES) {
+ return super.hasOverlappingRendering();
+ } else {
+ return (getBackground() != null || mText instanceof Spannable || hasSelection());
+ }
+ }
+
/**
* When a TextView is used to display a useful piece of information to the user (such as a
* contact's address), it should be made selectable, so that the user can select and copy this