diff options
author | Romain Guy <romainguy@android.com> | 2010-03-22 18:58:21 -0700 |
---|---|---|
committer | Romain Guy <romainguy@android.com> | 2010-03-22 18:58:21 -0700 |
commit | 65554f27855ce1764123604b061b10346f8b8404 (patch) | |
tree | fd4952bdfb8feaae1a2ba38ee35f861021803a76 /core/java/android/view/ViewDebug.java | |
parent | ac96fa575f17d4a65e65eddebe805c904fb29c19 (diff) | |
download | frameworks_base-65554f27855ce1764123604b061b10346f8b8404.zip frameworks_base-65554f27855ce1764123604b061b10346f8b8404.tar.gz frameworks_base-65554f27855ce1764123604b061b10346f8b8404.tar.bz2 |
Improve export to bitmap layers for HierarchyViewer.
- Do not show layers with an invisible parent
- Correctly draw extras from dispatchDraw() (ListView's dividers for instance)
Change-Id: Id2e24ae9d52879290dffbf1cc446c5eda9522fbb
Diffstat (limited to 'core/java/android/view/ViewDebug.java')
-rw-r--r-- | core/java/android/view/ViewDebug.java | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/core/java/android/view/ViewDebug.java b/core/java/android/view/ViewDebug.java index 2b5489c..d2563a8 100644 --- a/core/java/android/view/ViewDebug.java +++ b/core/java/android/view/ViewDebug.java @@ -1040,7 +1040,7 @@ public class ViewDebug { clientStream.writeInt(outRect.width()); clientStream.writeInt(outRect.height()); - captureViewLayer(root, clientStream); + captureViewLayer(root, clientStream, true); clientStream.write(2); } finally { @@ -1048,9 +1048,11 @@ public class ViewDebug { } } - private static void captureViewLayer(View view, DataOutputStream clientStream) + private static void captureViewLayer(View view, DataOutputStream clientStream, boolean visible) throws IOException { + final boolean localVisible = view.getVisibility() == View.VISIBLE && visible; + if ((view.mPrivateFlags & View.SKIP_DRAW) != View.SKIP_DRAW) { final int id = view.getId(); String name = view.getClass().getSimpleName(); @@ -1060,7 +1062,7 @@ public class ViewDebug { clientStream.write(1); clientStream.writeUTF(name); - clientStream.writeByte(view.getVisibility() == View.VISIBLE ? 1 : 0); + clientStream.writeByte(localVisible ? 1 : 0); int[] position = new int[2]; // XXX: Should happen on the UI thread @@ -1086,7 +1088,7 @@ public class ViewDebug { int count = group.getChildCount(); for (int i = 0; i < count; i++) { - captureViewLayer(group.getChildAt(i), clientStream); + captureViewLayer(group.getChildAt(i), clientStream, localVisible); } } } |