Android 自定义组件<总结篇>

来源:互联网 发布:云计算技术原理 编辑:程序博客网 时间:2024/06/09 01:11

写了这么多了,接下来来回顾总结一下吧:

其中:

在布局中定义时:

   1.文字 一般要用 sp; 因为美工 设计是一般用的都是px,到开发人员手中的时候,一般都要转化为sp;

   2.边距和填充时:一般都要用 dp或者是 dip;

   3.如果想要规范的话,一般采用 values文件,通过getResource().getXXX进行获取。

   4. dimen文件:起到了适配的作用。values-hdpi:屏幕较大的手机(5.0,720X1270 或者更大)values-hdpi (中型手机)  values-hdpi(小型手机: 240X480)

比如说:对于文字的适配: 

xml中:

<TextView
        android:id="@+id/main_title_cloude"
        style="@style/skyprotect_textView"
        android:gravity="center_horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#f8e4b7"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:text="@string/sky_protect_main_title"
        android:textSize="@dimen/main_skypro_tv2"
         />

values-hdpi:里面写入:  <dimen name="main_skypro_tv2"> 13sp</dimen>

values-hdpi:里面写入:  <dimen name="main_skypro_tv2"> 12sp</dimen>

values-hdpi:里面写入:  <dimen name="main_skypro_tv2"> 11sp</dimen>

这样针对于不同的手机:都能达到  既能让文字显示一行,还能让在不同大小的手机上显示相同的效果。两全其美。


public View addDivider() {

return mInflater.inflate(R.layout.te_divider, mContents);
}


public View addView(int layout) {
View view = mInflater.inflate(layout, null);
mContents.removeAllViews();
mContents.addView(view);
return view;
}


public void addView(View view) {
mContents.removeAllViews();
mContents.addView(view);

}

构造方法不能乱


学习Android自定义组件的几个步骤:
0. 对Android熟悉 (继承关系,类关系,对多数类比较熟悉常规方法),如果不熟悉就想写自定义组件根本不可能
1. 看官方文档关于自定义组件的介绍 http://developer.android.com/training/custom-views/index.html
2. 了解Android touch event 的工作流程 https://www.youtube.com/watch?v=EZAoJU-nUyI
3. 从最最简单的项目入手,了解他的架构,尝试自己写一个最简单的开源组件。这条微博推荐了三个不错的入门级开源项目可以学习:http://weibo.com/1628291124/C0mf ... me&type=comment
4. 慢慢由简单到复杂,不断补充自己知识,遇到问题读Android源代码了解更深层次原理。
5. 成就达成,不断练习,回馈开源社区
6. 用Google,不用Baidu,搜索用英文,不用中文。

做到这点的话,自定义控件就不在话下了。




0 0
原创粉丝点击