安卓开发中的工作笔记


1.有时候需要用到shape画图,画一个顶部的黄色直线,我们可以换一个思路:

   用两个矩形,一个黄色的矩形当背景,然后一个白色的矩形在上部,白色矩

   形设置一个top,需要多高的直线,就设置多大的top。

   如图为所需要的效果图:

               

android data获取时间 安卓开发获取当前时间_layer-list

   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.一个字符是一个数字,一个英文字母,一个空格或者一个符号(不是全部符号都是一个字符)一个汉字=两个字符!