安卓开发中的工作笔记
1.有时候需要用到shape画图,画一个顶部的黄色直线,我们可以换一个思路:
用两个矩形,一个黄色的矩形当背景,然后一个白色的矩形在上部,白色矩
形设置一个top,需要多高的直线,就设置多大的top。
如图为所需要的效果图:
shape图的代码如下:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true"> <layer-list>
<item>
<shape android:shape="rectangle">
<solid android:color="#F6AE40" />
</shape>
</item>
<item
android:drawable="@drawable/bg_indicator_selected" android:top="3dp">
</item>
</layer-list>
</item>
<item android:drawable="@drawable/bg_indicator_unselected" android:state_selected="false">
</item>
</selector>
将多个图片按照顺序层叠起来,有时候为了方便我们可以直接
在selector中直接画shape当做子item。
2.shape画图中的类型:rectangle 矩形 oval 椭圆形 line 直线 ring 戒指
属性:
<!-- 设置圆角 -->
<corners
android:radius="10dp"/> <!-- 填充内容 -->
<solid
android:color="#ff0000"/> <!-- 图片大小 -->
<size
android:width="40dp"
android:height="40dp"/> <!-- 描边 -->
<stroke
android:color="#00ff00"
android:width="1dp"
android:dashWidth="2dp"
android:dashGap="1dp"/> <padding
android:left="1dp"/> <!-- 渐变颜色 -->
<gradient
android:startColor="#ff0000"
android:centerColor="#00ff00"
android:endColor="#0000ff"
android:angle="45"/>
3.如何让listview加载完成后,直接定位到某一行?
直接用listview.setSelection(int position);
adapter.notifyDataSetInvalidated();//通知adapter数据有变化
列如:
listview.setSelection(10);//定位到10行
4.像足球联赛赛程一样,定位到当前最近的一场比赛。用ExpandableListView
进行分组显示。在获取数据的时候对数据进行遍历,找出和当前时间最近的
那场比赛的时间,它对应的位置GroupPosition,ChildPosition就是当前定位
的参数。如下:
//获取当前的时间 mTodayTime
// 遍历数据 Group存放在 mGrouplist中 Chrid存放在mChridlist中
for (int j = 0; j < mGrouplist.size(); j++) {
for (int i = 0; i < mChridlist.get(j).size(); i++) {
TeamSchedules teamSchedules = mChridlist.get(j).get(i);
if (mTodayTime<=teamSchedules.matchDate) {
// 同日期的多场比赛,取最前面的那一场为当前的最新比赛
if (mMatchDate!=teamSchedules.matchDate) {
mMatchDate = teamSchedules.matchDate;
mGroupPosition = j;
mChildPosition = i;
}
}
}
}
mScheduleExListview.setSelectedChild(mGroupPosition,mChildPosition, true);
expandableAdapter.notifyDataSetChanged();
5.一个字符是一个数字,一个英文字母,一个空格或者一个符号(不是全部符号都是一个字符)一个汉字=两个字符!