• 安卓入门(一)


    基础

    翻译文档。

    支持不同的版本

    既可以在 AndroidManifest.xml 中指定版本号,也可以在代码中运行时检查当前版本。
    AndroidManifest.xml 中指定最小版本号和目标版本号,例如:

    <manifest xmlns:adnroid:"http://schemas.android.com/apk/res/android">
        <uses-sdk android:minSdkVersion="4" nadoird:targetSdkVersion="21"/>
        ...
    </manifest>
    

    代码中检查版本号,需要使用 Build 静态类,做版本比较:

    private void setUpActionBar(){
        // make sure we're running on Honeycomb or higher to use ActionBar APIs
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
            ActionBar actionBar = getActionBar();
            actioinBar.setDisplayHomeAsUpEnabled(true);
        }
    }
    

    String资源

    为了优化UI界面,提倡把字符串都定义成字符串资源,放在 res/values/strings.xml 文件中,以键-值对的形式存在,这也方便于应用使用多语言。

    一个目录结构示例如下:

    MyProject/
        res/
            values/
                strings.xml
            values-es/
                strings.xml
            values-fr/
                string.xml
    

    在XML中引用资源格式为 @type/key,例如引用字符串资源 @string/button_send,对应的资源设置如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="button_send">Send</string>
    </resources>
    

    对也字符串资源的引用有如下两种方式:

    // get a string resource from your app's Resources
    String hello = getResources().getString(R.string.hello_world);
    
    // or supply a string resource to a method that requires a string
    TextView textView = new TextView(this);
    textView.setText(R.string.hello_world);
    

    在XML文件中的引用方式如下:

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world"
    />
    

    布局

    对于所有控件,默认的 weight 值为0,如果你给控件X设定为非零值,那么在其他控件占据位置后,这个控件X会占据所有剩余的空间。另外,为了提高布局效率,设定了 weight 值的控件不要设定 width 或者 height 的值,因为设定了也没有用,反而浪费计算时间。

    按钮响应的事件,最自然的是绑定实现了 OnClickListener接口的类对象,但是也可以在 XML 中直接指定响应单击事件的方法,这个方法必须满足以下3个条件:

    • 必须是 public
    • 返回值必须是 void
    • 入口参数必须是唯一的一个 View

    支持不同大小、不同分辨率的设备

    对应的布局文件应当有如下分类:

    MyProject/
        res/
            layout/                        # default (portrait)
                main.xml
            layout-land/                # landscape
                main.xml
            layout-large/                # large (portrait)
                main.xml
            layout-large-land/        # large landscape
                main.xml
    

    创建不同分辨率的图片

    图片有4种尺寸,各种分辨率之间的比例关系如下:

    • xhdpi: 2.0
    • hdpi: 1.5
    • mdpi: 1.0 (baseline)
    • ldpi: 0.75

    假如对于 xhdpi 的设备创建的图片大小是 200x200,那么对应的 hdpi 设备的图片大小是 150x150,对于 mdpi 设备的图片大小是 100x100,对于 ldpi 设备的图片大小是 75x75。
    资源文件目录结构如下:

    MyProject/
        res/
            drawable-xhdpi/
                one.png
            drawable-hdpi/
                one.png
            drawable-mdpi/
                one.png/
            drawable-ldpi/
                one.png
    

    小技巧

    在 Eclipse 中快捷键 Ctrl+Shift+O 导入缺失的类。

  • 相关阅读:
    DOPE:基于蒸馏网络的全身三维姿态估计
    3D人体姿态重构
    Nginx+gunicorn+flask+docker算法部署
    MediaPipe中Box Tracking技术原理
    C++线程池
    MediaPipe加速流程和原理
    记一次illegal instruction问题定位
    如何阅读大工程代码(clickhouse版)
    zookeeper client原理总结
    go package依赖图自动生成
  • 原文地址:https://www.cnblogs.com/LinTeX9527/p/7427328.html
Copyright © 2020-2023  润新知