颜色资源                                                                                      

  • 颜色XML文件格式
<?xml version="1.0" encoding="utf-8"?>
     <resources>                //resources根元素
        <color name="" >#000000</color>
                                        //color子元素
     </resouces>
  • 引用格式
//java代码中:
R.color.color_name  //(这是一个int型的数据,用于表示资源的地址)
<!--XML文件中:-->
 @color/color_name
  • 获得颜色值的方法
getResources().getColor();   //返回一个类似#0000FF的颜色值

字符串资源                                                                                  

  • XML文件格式
<?xml version="1.0" encoding="utf-8"?>
     <resources>                //resources根元素
        <string name="" >StringHere</string>
                                        //string子元素
     </resouces>
  • 引用格式
//java代码中:
R.string.string_name
<!--XML文件中: -->
 @string/string_name
  • 获得字符串的方法
Resources.getString(int);    //返回一个String类型的对象
//注意在控件中setText(int resid)   和setText(String string_name)    这两个方法都是允许的

尺寸资源                                                                                     

  • XML文件
<dimen name=dimen_name> dimen_value</dimen>
      <!--尺寸值的单位可以是px(像素)  或者 mm(毫米,实际屏幕尺寸)或dp-->
  • 引用格式
// java代码:
 R.dimen.dimen_name
<!--XML文件中:    -->
@dimen/dimen_name
  • 获取方法
Resources.getDimension(R.dimen.dimen_name);
//注意使用这个方法返回的是一个float类型的值,而setWidth()参数一般要求是int 类型的,所以要进行一次强制类型转换。

XML资源文件                                                                               

  • XML文件

android程序自带的xml 文件一般放在values/xml/xml_name.xml  处,这里需要使用new->file床建一个新的xml文件;

xml文件的版本

<?xml version="1.0" encoding="utf-8"?>
  • 引用格式
//java
R.xml.xml_name
  • 获取方式
Resources.getXml(int resid );   //返回的是一个XmlResourceParser对象

别人经验总结分享                                                                         

  • 实现圆角的效果——学会使用描述背景的drawable/中的 xml文件

需要在drawable文件夹中创建xml文件,文件的父控件类型为shape,在shape父控件中,有<solid/>  <corners/> <stroke/> <padding/> 等属性,分别处理背景的填充颜色、边角的曲率、边框线的宽度和颜色、上下左右内边框(即背景超出使用改背景的空间的宽度)

例如,若想实现一个圆角的ImageButton,可以创建一个 fillet_shape.xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <solid android:color="#ffffff"/>
    <corners android:radius="10px"/>
    <padding android:left="3dip" android:top="3dip" android:right="3dip" android:bottom="3dip"/>

</shape>

然后在Activity类中用ImageButton的实例设置setBackgroundResource(); 或者在xml布局文件中在配置控件属性使用  android:background="@drawable/fillet_shape"  注意这里在配置好背景之后,在为ImageView设置显示的图片时,只能使用setImageResource()而不能使用setBackgroundResource();

  • ListView如何调整每一个Item边框的宽度并且避免Item之间的分割线颜色太深?

方法就是上面介绍的自定义drawable/ 中xml文件,来配置边和背景属性,另外在配置ListView控件的属性时 设置android:divider="#aaaaaa" android:dividerHeight="0px"  。

  • 怎样解决ListView中添加Button之后就不响应单击事件的问题?

原因是Button抢夺了焦点,最简单的解决办法是:在自定义的每一个ListItem的布局文件中在根标签的属性中添加上 android:descendantFocusability="blocksDescendants" 即拒绝ListItem中的子控件获得焦点。

  • 怎样实现在点击某个控件以外的屏幕区域就使该控件消失的效果?本例中实现在点击ListView以外的区域就会使ListView消失的效果。

方法是覆写MainActivity的onTouchEvent()方法,根据点击的坐标(x,y)与目标控件通过getLocation获得的控件左上角坐标,再结合目标控件的宽和高,判断点击的点是否在控件内,进而决定对该控件执行怎样的操作。

@Override
    public boolean onTouchEvent(MotionEvent event) {
        // TODO Auto-generated method stub
        if(event.getAction()==MotionEvent.ACTION_DOWN && isVisible){
            int[] location=new int[2];
            //调用getLocationInWindow方法获得某一控件在窗口中左上角的横纵坐标
            loginList.getLocationInWindow(location);
            //获得在屏幕上点击的点的坐标
            int x=(int)event.getX();
            int y=(int)event.getY();
            if(x<location[0]|| x>location[0]+loginList.getWidth() ||
                    y<location[1]||y>location[1]+loginList.getHeight()){
                isIndicatorUp=false;
                isVisible=false;

                listIndicatorButton.setBackgroundResource(R.drawable.indicator_down);
                loginList.setVisibility(View.GONE);   //让ListView列表消失,并且让游标向下指!

            }
        }
        return super.onTouchEvent(event);
    }
  • layer-list的使用方法

layer-list的作用是叠放多个图层,这从名字上就可以看出,因为本节想做出一个一边没有边框,其它边界上没有边框的背景效果,使用<shape > 中的<stroke/>标签就没有办法满足了,解决的办法就是在drawable 文件夹中创建一个layer-list文件,然后创建两个图层<item>  第一个item放的是边框的颜色,第二个图层放的是内部的颜色,并且通过设置第二个item的根标签属性,设置第二个item比第一个item窄的程度,这样第一个item的颜色就会在边框处显示出来,从而做出边框的效果。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item >
        <shape >
            <solid android:color="#cccccc"/>
        </shape>   <!--上面是第一个图层-->
    </item>

    <item android:left="1dip" android:top="1dip" android:right="1dip" android:bottom="0dip">
         <!-- 上面一行是设置哪个边框的关键步骤,即第二个图层比第一个图层闪出来的边框! -->
        <shape >
            <solid android:color="#f0f0f0"/>

        </shape>
    </item>

</layer-list>
  • 如何理解ExpandableListView的生命周期?

对于ExpandableListView,当刚刚创建该对象并且设置好适配器之后,EListView的每一个group都是没有展开的,当点击某一个group时,系统会把所有的group 和展开的childItem 重新绘制一遍,其中每一个的group 的最后一个childItem放的isLastChild 为true.

当有group展开或者关闭时会调用onGroupExpanded()和onGroupCollapsed() 方法。

  • 如何动态获得ExpandableListView的高度?

创建一个一个int 变量 height,  在ExpandableListView刚刚创建时,设置其高度为所有group的宽度之和,然后当打开或者关闭group时,在onGroupExpanded()和onGroupCollapsed() 方法中对height 的值进行增加或者减少,并且通过LayoutParams对象即使更新空间的高度,从而实现动态更新ExpandableListView的高度。

具体代码如下:

1、获得ListItem的高度,这里比如获得group的高度,需要调用适配器的getGroupView的方法

View listItem=  listView.getExpandableAdapter().getGroupView(参数);

listItem.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
//这一个必须有,因为listItem 在通过inflate()方法获得时并未指定父控件,因此导致onMeasure()方法中无法对宽度和高度进行解析,所以这里将布局类型强制设定成wrapContent 类型,然后再调用measure()方法

listItem.measure(0,0);     

//0,0是两个参数,用于比较,measure()方法,用于计算控件的尺寸,关于该方法的具体细节请参考:http://blog.csdn.net/lilybaobei/article/details/8021868

int HEIGHT=listItem.getMeasuredHeight();

2、设置ExpandableListView的高度,通过LayoutParams对象

ViewGroup.LayoutParams params=listView.getLayoutParams();
//获得尺寸参数
 params.height=HEIGHT*3;
listView.setLayoutParams(params);

以上两点问题的提出主要是因把ListView、ExpandableListView放在一个 ScrollView中时往往会出现显示不全的问题,因此解决的办法就是动态更新ListView/ExListView的高度,以使列表能够显示完整。

  • ListView的边界比较模糊,颜色变淡

解决这个问题的方法是在ListView的属性设置中添加上  android:fadingEdge="none",这样边界就不会模糊了。

我是天王盖地虎的分割线                                                                

参考:http://www.cnblogs.com/carlos-vic

Android -- 资源使用和总结经验分享的更多相关文章

  1. Android内存优化解决 资料和总结的经验分享

    在前公司做一个图片处理的应用时, 项目交付的时候,客户的手机在运行应用的时候,一直在崩溃,而这个异常就是OutOfMemory的错误,简称为OOM, 搞得我们也是极其的崩溃,最后 ,我们是通过网上搜集 ...

  2. android平台短视频技术之 视频编辑的经验分享.

    android平台短视频技术之 视频编辑的经验分享. 提示一: 各位看官,这里分享的是视频编辑,即剪切/拼接/分离/合并/涂鸦/标记/叠加/滤镜等对视频的编辑操作.不是流媒体网络播放等功能,请注意. ...

  3. 关于启用 HTTPS 的一些经验分享(一)

    转载: 关于启用 HTTPS 的一些经验分享(一) 随着国内网络环境的持续恶化,各种篡改和劫持层出不穷,越来越多的网站选择了全站 HTTPS.就在今天,免费提供证书服务的 Let's Encrypt ...

  4. 微信登陆,微信SDK授权登陆经验分享

    From:http://www.eoeandroid.com/thread-547012-1-1.html 最近因为项目需要做了微信登陆,好像也是微信最近才放出来的接口.还需要申请才能有权限实现授权. ...

  5. Expression Blend4经验分享:文字公告无缝循环滚动效果

    这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...

  6. Expression Blend4经验分享:制作一个简单的图片按钮样式

    这次分享如何做一个简单的图片按钮经验 在我的个人Silverlight网页上,有个Iphone手机的效果,其中用到大量的图片按钮 http://raimon.6.gwidc.com/Iphone/de ...

  7. Expression Blend4经验分享:制作一个简单的文字按钮样式

    首先在Grid里放一个TextBlock,对象时间线窗口的结构树如下 右键点击grid,选择构成控件 会弹出构成控件的对话框,选择你要构成的控件类型,控件名称,控件样式存储位置 这里我们选择butto ...

  8. Android开发60条技术经验总结

    Android开发60条技术经验总结,以下是全文: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有 ...

  9. Android 开发60条技术经验总结(转)

    Android 开发60条技术经验总结: 1. 全部Activity可继承自BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效. 2. ...

随机推荐

  1. C#参数化执行SQL语句,防止漏洞攻击本文以MySql为例【20151108非查询操作】

    为什么要参数化执行SQL语句呢? 一个作用就是可以防止用户注入漏洞. 简单举个列子吧. 比如账号密码登入,如果不用参数, 写的简单点吧,就写从数据库查找到id和pw与用户输入一样的数据吧 sql:se ...

  2. Unity学习疑问记录之隐藏与显示物体

    Unity3D中隐藏与显示物体的一些操作 http://unity3d.9tech.cn/news/2013/0930/33019.html

  3. Eclipse设置自动换行

    Eclipse 使用系统内置的“ Text Editor ”做为文本编辑器,这个文本编辑器有一个问题,就是文本无法换行.这个问题在显示上给人们带来不少麻烦. 终于有人忍不住开发了一个扩展插件 Word ...

  4. hdu 4952 Number Transformation (找规律)

    题目链接 题意:给你个x,k次操作,对于第i次操作是:要找个nx,使得nx是>=x的最小值,且能整除i,求k次操作后的数 分析: 经过打表找规律,会发现最后的x/i,这个倍数会趋于一个固定的值, ...

  5. beaglebone-black 在Angstrom系统中的网络配置方法

    Beaglebone Linux 101: Assigning a Static IP Address with Connman Posted on February 6, 2012 by dwatt ...

  6. APUE《UNIX 环境高级编程》读后感

    今天终于把APUE前17章全部看完了,基本上主要知识就在这些章节里. 之前看完<unix/linux编程实践教程>时,有一种豁然开朗.心旷神怡的感觉,在代码级别了解了linux很多系统机制 ...

  7. Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)

    This semester I'm teaching from Hastie, Tibshirani, and Friedman's book, The Elements of Statistical ...

  8. Nowcoder | [题解-N210]牛客OI月赛2-提高组

    比赛连接戳这里^_^ 我才不会说这是我出的题(逃) 周赛题解\((2018.10.14)\) \(T1\) \(25\sim50\)分做法\(:\)直接爆搜 作为一个良心仁慈又可爱的出题人当然\(T1 ...

  9. View.requestLayout

    参考:安卓高手之路之图形系统(6)requestLayout的流程 一.invalidate和postInvalidate 这两个方法都是在重绘当前控件的时候调用的.invalidate在UI线程中调 ...

  10. Phone List HDU1671

    字典树的包含与不包含关系 #include<bits/stdc++.h> using namespace std; ][]; ]; ; bool insert1( char *word ) ...