Android Studio学习开发笔记--基础
关于进阶项目篇,点击这里
文章目录
- 前言
- 构建首个应用
- 运行
- 第一次可能会出现的问题
- 想要重新下载安装Android Studio
- 文件在哪里编辑
- android基础--控件
- 基础属性
- 带阴影的TextView
- 实现跑马灯效果的TextView
- button
- EditText
- ImageView
- ProgressBar
- Notification
- Toolbar
- AlertDialog
- PopupWindow
- android基础--布局
- LinearLayOut
- RelativeLayout
- FrameLayout
- TableLayout
- GridLayout
- 以上为android开发基础,接下来从0基础开始入门开发
- 创建一个empty activity
- manifests
- java
- res
- 关于如何设置在线模拟器
- viewgroup
- 使用XML布局文件控制UI界面
- 在java代码中控制UI界面
- 使用XML和java代码混合控制UI界面
- 关于设置一个跟随手指移动的自定义组件
- 相对布局管理器RelativeLayout
- 线性布局管理器LinearLayout
- 使用线性布局管理器实现微信登录页面
- 帧布局管理器FrameLayout
- 表格布局管理器TableLayout
- 应用表格布局管理器实现喜马拉雅用户登录界面
- 网格布局管理器GridLayout
- 布局管理器的嵌套
- 普通按钮语法
- 图片按钮和普通按钮的区别
- 图片按钮
- 单选按钮语法RadioButton
- 复选框语法CheckBox
- 日期选择器DatePicker
- 时间选择器TimePicker
- 计时器Chronometer
- 进度条ProgressBar
- 拖动条SeekBar
- 星级评分条RatingBar
- 图像视图ImageView
- 图像切换器ImageSwitcher
- 网格视图GridView
- 下拉列表框Spinner
- 列表视图ListView
- 滚动视图ScrollView
- 选项卡TabHost
前言
构建首个应用
在英文目录下创建project项目~~“字符数字下划线”
- 安装最新版Android Studio
- 在welcome to Android Studio窗口中,点击Create New Project
4. 如果您已打开一个项目,请依次选择 File > New > New Project
5. 在 Select a Project Template 窗口中,选择 Empty Activity,然后点击 Next。
6. 在 Configure your project 窗口中,完成以下操作:
在 Name 字段中输入“My First App”。
在 Package name 字段中输入“com.example.myfirstapp”。
如果您想将项目放在其他文件夹中,请更改其 Save 位置。
从 Language 下拉菜单中选择 Java 或 Kotlin。
在 Minimum SDK 字段中选择您希望应用支持的最低 Android 版本。
7. 点击Finish
kotlin是基于Java的一种语言
第一次进入,需要下载依赖库,需等待一段时间。
确保打开Project窗口(依次选择 View > Tool Windows > Project),并从该窗口顶部的下拉列表中选择 Android 视图。
运行
基于手机运行
使用一根 USB 线将设备连接到开发机器。如果您是在 Windows 上开发的,则可能需要为设备安装合适的 USB 驱动程序。
执行以下步骤,在开发者选项窗口中启用 USB 调试:
打开设置应用。
如果您的设备使用 Android v8.0 或更高版本,请选择系统。否则,请继续执行下一步。
滚动到底部,然后选择关于手机。
滚动到底部,然后点按版本号七次。
返回上一屏幕,滚动到底部,然后点按开发者选项。
在开发者选项窗口中,向下滚动以查找并启用 USB 调试。
点击 Run 。
基于模拟器运行
在 Android Studio 中创建一个 Android 虚拟设备 (AVD),模拟器可以使用该设备安装和运行您的应用。
在工具栏中,从运行/调试配置下拉菜单中选择您的应用。
从目标设备下拉菜单中,选择要用来运行应用的 AVD。
第一次可能会出现的问题
1.点击Project的Android时,loading时间太长
解决方法
buildscript {repositories {maven{ url = "http://maven.aliyun.com/nexus/content/groups/public/" }google()jcenter()}dependencies {// 然后把这里的7.1.2 版本改成你原来内容的版本号classpath 'com.android.tools.build:gradle:7.1.2'// 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/" }google()jcenter()}
}
task clean(type: Delete) {delete rootProject.buildDir
}
代码替换之前内容,保存即可。但新手会产生一系列问题,不建议修改此文件。
如果修改了,
想要重新下载安装Android Studio
解决方法
1.卸载android studio
2.点击本地磁盘(C:) 点击查看 勾选隐藏的项目
3.进入C;\Users\Username(用户名)删除 .android和.gradle文件
4.进入C:\Users\Username\AppData\Local 删除 Android 文件
5.进入C:\Users\Username\AppData\Roaming\Google 文件
文件在哪里编辑
操作在Project 窗口中,依次打开 app > res > layout > activity_main.xml。(可以理解为文件主页面,类似于HTML的主页面)
app > res >values > coloes.xml strings.xml等文件,类似于HTML的css文件,规定了文本样式等
如果要引用这些文件: android:label="@string/app_name"
//colors.xml<resources><color name="black">#FF000000</color>
</resources>
//activity_main.xml
android:textColor="@color/black"
android基础–控件
基础属性
1.layout_width: 组件的宽度
2.layout_hegiht: 组件的高度
3.id: 为TextView设置一个组件id
4.text: 设置显示的文本内容
5.textColor: 设置字体颜色
6.textStyle: 设置字体风格,三个可选值:normal,bold,italic
7.textSize:字体大小,单位一般是sp
8.background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片
9.gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等(一般使用center_vertical垂直居中,center_horizontal水平居中)
带阴影的TextView
1.android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用
2.android:shadowRadius:设置阴影的模糊程度,设置为0.1就变成字体颜色,建议使用3.0
3.android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横向坐标位置
4.android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵向坐标位置
//activity_main.xmlandroid:shadowRadius="3.0"//模糊度
android:shadowDx="10.0"
android:shadowDy="10.0"
实现跑马灯效果的TextView
1.android:singleLine: 内容单行显示
2.android:focusable:是否可以获取焦点
3.android:focusablelnTouchMode:用于控制视图在触摸模式下是否可以聚焦
4.android:ellipsize:在哪里省略文本
5.android:marqueeRrpeatLimit:字母动画重复的次数
//实现自动跑马灯
//1.点击
android:clickable="true"//2.自定义TextView
//MyTextView继承自TextView
public class MyTextView extends TextView{}@Overridepublic boolean isFocused(){return true;}//activity_main.xml<TextView> --> <com.enjoy.mytextview.MyTextView>//3.加requestFocus,请求焦点
<TextView> ---> <TextView> <requestFocus/> </TextView>
button
StateListDrawable
1.drawable:引用的Drawable位图
2.state_focused:是否获得焦点
3.state_pressed:控件是否被按下
4.state_selected:控件是否被选择,针对有滚轮的情况
5.state_enabled:控件是否可用
6.state_checked:控件是否被勾选
7.state_checkable:控件可否勾选,eg:checkbox
//btn_selector.xml<item android:drawable="@drawable/ic_baselline_account_balance_24" android:state_pressed="true"/>
android:foreground 前景色
button事件处理
1.点击事件
2.触摸事件
3.长按事件
private static final String TAG="leo";Button btn=findViewById(R.id.btn);//点击事件
btn.setOnClicklistener(new.View.OnClicklistener(){@Overridepublic void onClick(view v){Log.e(TAG,msg:"onClick:"); }
});//长按事件
btn.setOnLongClickListener()//触摸事件
btn.setOnTouchListener({@Overridepublic boolean onTouch(View v,MotionEvent event){Log.e(TAG,msg:"onTouch:"+event.getAction());return false;}
});
EditText
1.android:hint 输入提示
2.android:textColorHint 输入提示文字的颜色
3.android:inputType 输入类型
4.android:drawable… 在输入框的指定方位添加图片
5.android:drawablePadding 设置图片与输入内容的间距
6.android:padding… 设置内容与边距的间距
7.android:background 背景色
ImageView
1.android:src 设置图片资源
2.android:scaleType 设置图片缩放类型
3.android:maxHeight最大高度
4.android:maxWidth 最大宽度
5.android:adjustViewBounds 调整View的界限
ProgressBar
1.android:max 进度条的最大值
2.android:progress 进度条已完成进度值
3.android:indeterminate 如果设置成true,则进度条不精确显示进度
4.style="?android:attr/progressBarStyleHorizontal"水平进度条
Notification
manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//版本判断
if(Bulid.VERSION>SDK_INT>=Build.VERSION_CODES.o){Notification notification=new NotificationChannel(id:"",name:"测试通知",NotificationManager.IMPORTANCE_HIGH);manager.creatNotificationChannel(channel);
}Notification notification=new NotificationCompat.Bulider(context:this,channeld:"").build();
Toolbar
AlertDialog
PopupWindow
android基础–布局
LinearLayOut
RelativeLayout
FrameLayout
android:foreground 设置前景
android:foregroundGravity 设置前景位置
TableLayout
GridLayout
以上为android开发基础,接下来从0基础开始入门开发
创建一个empty activity
在这里Activity表示窗口的意思
创建完成后,点击运行,你会看到如下界面
为什么会出现Hello World!
manifests
安卓的全局描述文件
资源文件
java
程序入口地址,可以理解为程序运行时进入的主界面
activity所显示的布局文件
清理项目
res
layout 布局文件
mipmap 应用启动文件,包括不同分辨率
关于如何设置在线模拟器
我在基于模拟器运行搞过了,往上翻一翻就好啦!
viewgroup
使用XML布局文件控制UI界面
在java代码中控制UI界面
使用XML和java代码混合控制UI界面
关于设置一个跟随手指移动的自定义组件
//MainActivity.java
package com.example.rabbit;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.FrameLayout;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);FrameLayout frameLayout=(FrameLayout) findViewById(R.id.mylayout);rabbitview rabbit=new rabbitview(this);rabbit.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {rabbit.bitmapX=event.getX();rabbit.bitmapY=event.getY();rabbit.invalidate();return true;}});frameLayout.addView(rabbit);}
}
//activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@mipmap/wakk"android:id="@+id/mylayout"tools:context=".MainActivity"></FrameLayout>
//自定义组件
package com.example.rabbit;import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.View;public class rabbitview extends View {public float bitmapX;public float bitmapY;public rabbitview(Context context) {super(context);bitmapX=290;bitmapY=120;}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Paint paint=new Paint();Bitmap bitmap=BitmapFactory.decodeResource(this.getResources(),R.mipmap.aa);canvas.drawBitmap(bitmap,bitmapX,bitmapY,paint);if(bitmap.isRecycled()){bitmap.recycle();}}
}
相对布局管理器RelativeLayout
表示id为user的组件不受gravity的控制。
控制相对于参考组件位置。属性值为id
组件与布局管理器哪边对齐。bool类型
控制组件与哪个组件的上下左右对齐。
控制组件与布局管理器哪个位置对齐。
eg
线性布局管理器LinearLayout
//设置布局管理器组件的排列方式
android:orientation="horizontai"//水平
android:orientation="vertical"//竖直
//设置布局管理器组件位置
android:gravity="right|button"//右下显示
//组件所占的权重
android:layout_weight
使用线性布局管理器实现微信登录页面
设置黑色头导航栏。
帧布局管理器FrameLayout
android:foreground
android:foregroundGravity//前景图像,始终位于最上层
表格布局管理器TableLayout
//隐藏某一列
android:collapseColumns
//某一列被拉伸
android:stretchColumns
//某一列被收缩
android:shrinkColumns
应用表格布局管理器实现喜马拉雅用户登录界面
网格布局管理器GridLayout
android:layout_colum//控制子组件在网格的第几列
android:layout_columSpan//控制子组件横向跨几列
android:layout_columWeight//子组件在水平方向上的权重
android:layout_gravity//子组件采用哪种方式占用网格
android:layout_row//决定子组件在网格的第几行
android:layout_rowSpan//控制子组件纵向跨几列
android:layout_rowWeight//子组件在垂直方向上的权重
布局管理器的嵌套
设置密码框。
在编辑框内设置图像属性。
获取编辑框组件,获取编辑框内容。
普通按钮语法
匿名内部类作为单击事件监听器
通过onClick属性实现
第二种方法:
图片按钮和普通按钮的区别
图片按钮
去掉导入图片灰色背景。
单选按钮语法RadioButton
复选框语法CheckBox
日期选择器DatePicker
时间选择器TimePicker
计时器Chronometer
进度条ProgressBar
圆形进度条。
eg:
其中0x111表示未完成,0想10表示已完成。这里是随意设置的,一般是一0x开头。
拖动条SeekBar
设置拖动条样式。
eg
星级评分条RatingBar
android:numStar表示有几颗星
android:rating表示默认·几颗星
android:stepSize表示每次选中整颗星
android:isIndicator为true表示星级评分条不可改变
图像视图ImageView
等比例缩放。
是否调整边界,保持其长宽比。
设置最大宽度和最大高度。
对图像着色。
设置屏幕横屏显示。
图像切换器ImageSwitcher
点击切换图片。
滑动显示图片。
网格视图GridView
数组适配器,显示一行数据
简单适配器,把list值包装成多个列表项
数据库内容以列表形式表现出来
对各个列表项进行最大限度的定制
eg
下拉列表框Spinner
或者
列表视图ListView
eg
滚动视图ScrollView
ScrollView竖直滚动
HorizontalScrollView水平滚动
使用java文件创建滚动式图
选项卡TabHost
Android Studio学习开发笔记--基础相关推荐
- 安卓开发Android studio学习笔记12:读取解析XML(案例演示)
Android studio学习笔记 第一步:配置Student.XML 第二步:配置activity_main.xml 第三步:配置student.xml 第四步:配置Student用户类 第五步: ...
- 《Android Studio应用开发实战详解》——第1章,第1.5节Android开发学习路线图
本节书摘来自异步社区<Android Studio应用开发实战详解>一书中的第1章,第1.5节Android开发学习路线图,作者 王翠萍,更多章节内容可以访问云栖社区"异步社区& ...
- JNI编程基础(二)——Android Studio NDK开发
由于笔者目前的工作是Android开发,所以在JNI开发系列博客中穿插一篇AndroidStudio NDK开发介绍. 随着Android Studio 2.2的推出,Android Studio的N ...
- Android Studio --- [学习笔记]TCP(第2弹)、GridView、ScrollView
说明 这篇主要接上一篇Android Studio - > [学习笔记]RadioButton.CheckBox.ImageView.ListView.TCP的三次握手 对上面回答的细解,并用J ...
- Android Studio --- [学习笔记]RadioButton、CheckBox、ImageView、ListView、TCP的三次握手
说明 源代码 在2.x里有TCP的三次挥手与四次握手,先对它进行简单的回答(百度).预计在下一篇里,会继续说明TCP 接上一篇: Android Studio - > [学习笔记]Button. ...
- Android studio 安卓开发常见问题(个人笔记系列)
Android studio安卓开发常见问题 注:个人笔记就是没有大纲.没有目录.没有结构,纯属本人笔记用. 正文 1.建议为控件绑定监听器而不是用XML的onClick属性来实现一个方法. 2.匿名 ...
- 《Android Studio应用开发实战详解》——第1章,第1.2节Android系统基础
本节书摘来自异步社区<Android Studio应用开发实战详解>一书中的第1章,第1.2节Android系统基础,作者 王翠萍,更多章节内容可以访问云栖社区"异步社区&quo ...
- Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境
引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...
- 【Android】Parse开发笔记(1)—— 准备
一.简介 Parse是由 YC 孵化出来的.专为移动应用提供后台服务的云计算平台,为开发者包办繁琐的后台服务,让开发者只需专注于具体的开发工作.它提供任意数据保存.照片或其它文件存储.发送推送通知.创 ...
最新文章
- python期末考试题及答案翻译-用 python 解 NOIP 竞赛题
- Elasticsearch 100问(下)
- 微信小程序页面跳转、逻辑层模块化
- [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)
- 自从有了这个工具,一键代码迁移不在话下
- Linux定义多个标准输入输出,言简意赅解释Linux中的标准输入输出
- “明年AI会如何?”英伟达问了13位不同行业的专家
- Java尖刀系列3:堆
- HDU - 3564 Another LIS(LIS+线段树)
- 《构建之法》第4章读后感
- 百度地图API实现地理围栏
- vc实现文件的打印--BOOL Print_html(const char *sURL)
- Race Condition是什么
- PC读写西门子PLC寄存器的值
- 怎么修改图片尺寸?如何设置图片宽高?
- 神棍节前夕,沃商店迎来1岁生日
- 天津大学软件学院 研究生学位申请的学术成果要求
- 每日一练——回文链表
- 网络协议分析(3):FTP
- 推荐算法——潜在因子(LatentFactor)算法
热门文章
- Win10照片查看器没了,如何找回?
- GIC/ITS代码分析(1)MADT表
- 基于Simulink的开关电源仿真设计
- cajviewer打不开,卸载重装也于事无补。一分钟解决,亲测有效。
- CF1720A Burenka Plays with Fractions 题解
- Codeforces Daily (Round 370-410)
- 2022-01-15:中心对称数 III。 中心对称数是指一个数字在旋转了 180 度之后看起来依旧相同的数字(或者上下颠倒地看)。 写一个函数来计算范围在 [low, high] 之间中心对称数的个
- Smarter TSM 工具集介绍
- 【网络协议模糊测试实战】使用sulley对PCManFTP进行模糊测试
- Logistic-tent混沌系统matlab