zoukankan      html  css  js  c++  java
  • Android学习笔记

    1、UI

    1.1 布局管理器

    View <- ViewGroup  <- LinearLayout  线性布局 <- tableLayout  表格布局

              <- GridLayout  网格布局  Android4.0及以上使用

              <- FrameLayout  帧布局

              <- relativeLayout  相对布局

              <- absoluteLayout  绝对布局  不同屏幕大小、不同分辨率时,比较难控制

    1.2 TextView

    TextView    <- CheckedTextView

    (不允许编辑)<- EditText(可编辑) <- AutoCompleteTextView <- MultiAutoCompleteTextView

          <- ExtractEditText

          <- Chronometer  计时器

          <- Button   <- CompoundButton  <- CheckBox   复选框

                             <- RadioButton 单选按钮

                             <- ToggleButton  状态开关按钮

                             <- Switch   开关

          <- DigitalClock  / analogclock 时钟

    TextView:默认情况下,TextView不带边框,若想为其添加边框,可以考虑为TextView设置一个Drawable,该Drawable只是一个边框,这样就实现了带边框的TextView。当设置背景为Drawabke对象时,背景可以自定义,实现渐变等特效。

    设置的背景文件以xml格式存放在drawable_mdpi文件夹内,然后直接通过

    android:background="@drawable/bg_border"

    其中bg_border.xml就是自定义绘画的背景图

    e.g.:

    <?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- 指定圆角矩形的四个圆角的半径 -->
    <corners android:topLeftRadius="20px"
    android:topRightRadius="5px"
    android:bottomLeftRadius="5px"
    android:bottomRightRadius="20px"/>
    <!-- 设置边框 -->
    <stroke android:width="4px" android:color="#f0f"/>
    <!-- 指定使用渐变背景色,使用sweep类型的渐变 颜色从红色-绿色-蓝色 -->
    <gradient android:startColor="#f00"
    android:centerColor="#0f0"
    android:endColor="#00f"
    android:type="sweep"/>

    </shape>

    1.3 使用9Patch图片作为按钮背景

    一般情况下,当按钮的内容太多时,Android会自动缩放整张图片,以保证背景图片能覆盖整个按钮。但这种缩放整张图片的效果可能并不好。可能需要的情况是我们只想缩放图片中的某个部分,这样才能保证按钮的视觉效果。

    为了实现只缩放图片中某个部分的效果,我们需要借助于9Patch图片来实现。9patch图片是一种特殊的PNG图片,这种图片以9.png结尾,它在原始图片四周各添加一个宽度为1px的线条,这4条线决定该图片的缩放规则、内容显示规则。

    左侧和上侧的直线共同决定了图片的缩放区域:以左边直线为左边界绘制矩形,它覆盖的区域可以在纵向缩放;以上面直线为上边界绘制矩形,它覆盖的区域可以水平缩放;它们二者的交集可以在两个方向上缩放。

    右侧和下侧的直线共同决定图片的内容显示区域:以右边直线为右边界绘制矩形,以下边直线为下边界绘制矩形,它们二者的交集就是图片的内容显示区域。

    Android为制作9Patch图片提供了Draw9patch工具,该工具位于Android SDK安装路径的tools目录下,进入该目录双击draw9patch.bat文件,即可启动该工具。

    如果启动该程序时提示java.lang.NoClassDefFoundError:org/jdesktop/swingworker/SwingWorker异常。可能的原因是draw9patch工具需要依赖于SwingWorker类,这个类在JDK1.5以前需要单独下载swing-worker的JAR包,但从JDK1.6以后,该类已经加入了javax.swing包下,但Android SDK还在使用早起的SwingWorker,而且android SDK又删除了swing-worker-1.1.jar包,所以引发上面的错误,为能正常启动draw9patch.bat,手动将swing-worker-1.1.jar复制到Android SDK安装路径的tools/lib路径下即可。

    启动draw9patch.bat后,通过该类工具菜单的”File-> Open 9-Patch“菜单项打开一张PNG图片,然后通过该工具定义图片的缩放区域、内容显示区域。

    将生成的图片保存到应用的res/drawable-mdpi路径下,主文件名任意,draw9patch.bat自动将该文件的后缀保存为.9.png。

     1.5 Switch必须是API 14以上的才能使用。

     1.6 ImageView    <-   ImageButton     <-   ZoomButton 可以代表放大、缩小 两个按钮

              <-   QuickContactBadge显示关联到特定联系人的图片

    Android小知识:

    @+id/ok与@id/ok的区别

    @+id/ok 新增一个资源ID,值为ok

    @id/ok 应用现有资源id

    如果在@后面使用“+”,表示当修改完某个布局文件并保存后,系统会自动在R.java文件中生成相应的int类型变量。变量名就是“/”后面的值

    例如,@+id/ok会在R.java文件中生成int ok = value,其中value是一个十六进制的数。如果ok在R.java中已经存在同名的变量,

    就不再生成新的变量,而该组件会使用这个已存在的变量的值。

    既然组件的id属性是一个资源id就可以,那么自然可以设置任何已经存在的资源id值,例如,@drawable/icon、@string/ok、@+string/you等。也可以设置android系统中已存在的资源id,例如@id/android:list,那么,这个android是什么意思呢,实际上,这个android就是系统的R类(在R.java文件中)所在的package。

  • 相关阅读:
    第二周学习总结
    调查问卷
    第五周学习总结
    基于DevExpress的项目窗体统一换肤
    一个Linq to Sql 的关联小问题,搞死人
    VC中类型转换(转载)
    保证一个程序只运行一次
    给所有的Control添加发送键盘事件Tab事件,实现回车键自动跳转到下一个控件[基于Shark Xu]
    遍历进程
    CSS Friendly ASP.NET 2.0 Control Adapters (Beta 2.0)在处理URL时的一个Bug
  • 原文地址:https://www.cnblogs.com/bonnie-lbn/p/4818087.html
Copyright © 2011-2022 走看看