Max*_*oat 2 expand android expandablelistview collapse
我正在开发一个涉及和ExpandableListView的应用程序.我们想用我们自己选择的一个替换groupIndicator.
我为指标创建了一个规范,根据选择器的状态(扩展或不扩展)显示不同的png
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/arrow_down" android:state_expanded="true"/>
<item android:drawable="@drawable/arrow_right"/>
</selector>
Run Code Online (Sandbox Code Playgroud)
然后我设置我的布局xml使用:
(请注意,childDivider是一个像素高的png而不是颜色,因为设置为颜色似乎有问题)
这是有效的,除了我们的图标是垂直伸展的.这是有道理的,因为我们刚刚创建了一个25x25的图标,希望是最好的.我正在试图弄清楚原生图标的尺寸,以便我可以匹配它,但这就是我遇到麻烦的地方.
挖掘源代码(ExpandableListView.java)我发现,默认情况下,该类将使用com.android.internal.R.styleable.ExpandableListView_groupIndicator.所以我有一个id,但还没有图标.
我很乐意能够做到:
Bitmap image = BitmapFactory.decodeResource(this.getResources(), com.android.internal.R.styleable.ExpandableListView_groupIndicator);
imWidth = image.getWidth();
imHeight = image.getHeight();
Run Code Online (Sandbox Code Playgroud)
但正如"内部"所暗示的那样,在用户空间中我并不可见.
我还在ExpandableListView.java中找到了getIndicate(),但它是私有的,所以我也无法做到这一点.
我很想深入了解平台源代码,我不知道如何追踪该图像.谁能帮我吗?
编辑:感谢CommonsWare.为其他任何人寻找其余部分:
android:drawable/expander_group在/frameworks/base/core/res/res/drawable/expander_group.xml中定义.
expander_group.xml提到它使用@ drawable/expander_ic_maximized和@ drawable/expander_ic_minimized.这些drawable可以在/frameworks/base/core/res/res/drawable/expander_ic_maximized.9.png和/frameworks/base/core/res/res/drawable/expander_ic_minimized.9.png中找到,以及特定密度的其他地方等等."9"解释了为什么默认图标没有失真问题 - 它们是补丁9图形.与图标密度无关的版本为34px×38px.
base.git的core/res/res/values/styles.xml定义com.android.internal.R.styleable.ExpandableListView_groupIndicator为android:drawable/expander_group.这是StateListDrawableSDK的资源副本中的一个.基础密度的基础PNG具有不同的大小.
| 归档时间: |
|
| 查看次数: |
1965 次 |
| 最近记录: |