为了巩固Android基础知识,回顾一下学习内容,才有此学习笔记。
Androdi Studio 4 + Genymotion
修改项目的 build.gradle,添加国内镜像
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
Build一下,需要很长时间,下载依赖的工具和包。运行一下新建的项目。OK
manifests
java
代码文件
res
存放项目用到的各种资源文件:如布局文件(layout)、文本(values\string.xml)、颜色、样式、图像(drawable)等。
资源文件添加到项目中会自动生成对应的ID,代码中访问资源都是通过这个资源Id查找。
如控件Id R.id.*;字符串id R.string.*;图片Id R.drawable.*等
资源文件名必须都是小写字符。
项目自动化构建工具代码
职坐标机构介绍,广而告之。
res/values/string.xml
<resources>
<string name="app_name">Demo</string>
<string name="btn_download">Download</string>
<string name="btn_downloading">Downloading...</string>
<string name="tip_downloading">Downloading...</string>
<string name="tip_download_stop">Finish</string>
</resources>
res/values-zh/string.xml
<resources>
<string name="app_name">功能演示</string>
<string name="btn_download">下载</string>
<string name="btn_downloading">正在下载...</string>
<string name="tip_downloading">正在下载...</string>
<string name="tip_download_stop">下载完成</string>
</resources>
可以从布局文件中引用此字符串,代码中使用 Id 引用此字符串。
//布局文件中引用
android:textColor="@string/btn_downloading"
//代码中引用
Resources res = getResources();
String str = res.getString(R.string.btn_downloading)
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
<color name="white">#FFFFFF</color>
</resources>
Android设备有许多不同形状及大小,屏幕尺寸不同与密度各不相同。
屏幕级别 | 屏幕密度 | 比率(相对) | 物理大小(英寸) | 像素大小 | 通常分辨率 |
mdpi | 160 | 4:1 | 1 | 160 | 320*480 |
hdpi | 240 | 6:1.5 | 1 | 240 | 480*800 |
xhdpi | 320 | 8:2 | 1 | 320 | 720*1280 |
xxhdpi | 480 | 12:3 | 1 | 480 | 1080*1800 |
Android支持单位
单位表示 | 单位名称 | 单位说明 |
px | 像素 | 屏幕上的真实像素表示 |
in | 英尺 | 基于屏幕的物理尺寸 |
mm | 毫米 | 基于屏幕的物理尺寸 |
pt | 点 | 英寸的1/72 |
dp | 和密度无关的像素 | 相对屏幕物理密度的抽象单位 |
sp | 和精度无关的像素 | 和dp类似 |
使用纯文本字符串在 res/values目录中的XML文件中定义(默认文件名 dimens.xml)
<resources>
<dimen name="btn_height">50dp</dimen>
<dimen name="btn_width">200dp</dimen>
<dimen name="btn_margin_top">10dp</dimen>
<dimen name="btn_text_size">20sp</dimen>
<dimen name="tip_text_size">20sp</dimen>
</resources>
//重写Activity的 onTouchEvent 方法
@Override
public boolean onTouchEvent(MotionEvent event) {
float x = event.getX();
float y = event.getY();
switch (event.getAction())
{
case MotionEvent.ACTION_DOWN:
Log.i(TAG, "onTouchEvent: " + "按下 X=" + x + " Y=" + y);
break;
case MotionEvent.ACTION_MOVE:
Log.i(TAG, "onTouchEvent: " + "移动 X=" + x + " Y=" + y);
break;
case MotionEvent.ACTION_UP:
Log.i(TAG, "onTouchEvent: " + "抬起 X=" + x + " Y=" + y);
break;
}
//默认返回 false ,表示在未处理完,需要向上传递。
//如果已处理完可以返回 true
return super.onTouchEvent(event);
}
本文地址:https://blog.csdn.net/jingliuting/article/details/107440586
如对本文有疑问, 点击进行留言回复!!
LongClick原理、上下文菜单原理、EditText长按弹窗原理、WebView长按弹窗自定义、修复WebView全选重复bug ———————————————— 版权声明:本文为CSDN博主「
JobScheduler 实现 特定时间,特定条件(系统空闲,电池电量,磁盘空间 ……)下执行任务
网友评论