android项目开发总结

这篇博客主要分享了Android项目开发中的各种技巧和注意事项,包括布局中width的计算公式、ImageView的BackGroud与Src属性区别、动态加载Layout的注意事项、9.png图片的阴影设置限制、ScollView与ListView的使用心得、自定义属性访问、焦点处理以及View的测量模式等。作者还提到了一些常见的问题及其解决办法,如ListView和GridView的焦点差异、ListView的焦点转移问题等。
摘要由CSDN通过智能技术生成

项目开发的总结很多,没有办法一个一个分类进行总结,在这里只是把自己的一些随心笔记整理出来。

  1. 布局中 wight的属性计算公式:
    控件的width(计算结果)=控件的宽度(本身的宽度值)+剩余空间的宽度*weight比例值。

  2. ImagView的BackGroud与Src属性区别:
    A、区别就是Src会被当做内容(所以会被Padding有影响),而BackGround不会,只是当做背景。
    B、Src会根据图片内容进行包含,而BackGround会根据ImagView的宽度进行填充(拉伸).

  3. 动态加载一个Layout布局文件成一个View,在XML中最外层View设置的Magin属性会失效,必须在代码中重新设置才行。
    解释:举一个很简单的例子:ListView列表项的布局文件,最外层的View如果设置了margin属性那么将会失效,只有在代码中进行设置才行。具体什么原因还不知道,估计得看源码才知道……

    例如:
    ImageView image = (ImageView) findViewById(R.id.main_image);  
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(image.getLayoutParams());  
    lp.setMargins(50, 100, 0, 0);  
    image.setLayoutParams(lp);  
  4. 9.png图片一条边不能设置两个阴影区域:这个是我自己不小心将.9.png设置了两个阴影区域,导致编译器报错了。
    这里写图片描述

  5. 代码中获取的View的高度、宽度、屏幕的宽高等单位都是px(像素), 比如获取一个dimen为30sp的文字大小,在代码中访问就是30px,然后如果直接设置30px就会造成与实际不符。解决方案:将30px转换成30sp设置即可。

  6. ScollView使用总结:这个在我的博客里面单独做了介绍。
    A、特殊类型的FragmentLayout,只能包含一个子视图或者视图组。
    B、最好不要包含具有滚动效果的组件,滚动效果可能会失效。
    C、直接滚动到底部/顶部:ScollView.fullScroll(ScollView.Focus_Down)
    D、滚动到指定位置:
    ScollView.smoothScrollTo(int x,int y)绝对位置
    ScollView.smoothScrollBy(int x,int y)相对位置(滑动的是增量)
    ScollView的smoothScrollTo与ScrollTo()区别?当时给自己留下了这个问题,明天再来解答。

  7. 关于自定义属性在XML中访问:这个坑遇到了一两次,现在做好记录预防下次犯错。
    A.定义属性:

    <declare-styleable name="MarTextView">
        <attr name="scrollspeed" format="integer"/>
        </declare-styleable>

    B.访问:
    名称空间:记得加上名称空间

    xmlns:test="http://schemas.android.com/apk/res-auto"
    访问:test:scrollspeed="50"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值