网站建设方案ppt,wordpress图片采集插件,室内设计软件下载网站大全,龙岗网站建设公司哪家口碑好说明
源代码为了更全面的了解RN,先熟悉一下Android开发 第1章 Android 初体验
1.1 Android开发概述
Android是Google开发的操作系统Android开发是移动应用开发的表现形式之一(Android、IOS、H5 App、Native H5、 RN、ionic、MUI…)
1.2 Android开发工具
Android Studio为…说明
源代码为了更全面的了解RN,先熟悉一下Android开发 第1章 Android 初体验
1.1 Android开发概述
Android是Google开发的操作系统Android开发是移动应用开发的表现形式之一(Android、IOS、H5 App、Native H5、 RN、ionic、MUI…)
1.2 Android开发工具
Android Studio为什么使用Android Studio? Android Studio是Google自己推出的Android集成开发工具,且Google已经停止对Eclipse的支持.
1.3 第一个Android应用
Everything begin with Hello World!Android Studio最大的特定是使用Gradle来构建项目… [部分目录说明]
res: 存放资源drawable: 图片layout: 布局文件mipmap-hdpi: logo图片values: 颜色、文字AndroidMainfest.xml: 应用里面用到的所有内容,都需要在这个里面注册一下
[部分代码说明]
src/main/java/com.skypan.helloworld/MainActivity内的函数setContentView(R.layout.activity_main):表示,使用了activity_main布局打开activity_main.xml,将标签名改为如下:
LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/android /
/LinearLayoutTextView android:textHello World: 显示在手机上的值为Hello World
第2章 UI组件
2.1 布局管理器
线性布局(LinearLayout)相对布局(RelativeLayout)以上两种占了接近百分之99
LinearLayout(线性布局)
[最常用属性]:
android:id: 控件的idandroid:layout_width: 布局的宽度android:layout_height: 布局的高度android:background: 布局的背景颜色android:layout_margin: 布局的左右边距android:layout_padding: 布局的内侧边距android:orientation: 布局的方向dp: 根据屏幕自己算出大小match_parent: 匹配父元素View /: 是所有控件的父类,如Button /android: gravity bottom: 控件子元素的排列方式weight: 权重,占父元素宽度(剩余)的权重.相当于flex布局中子元素的属性flex:1; 把剩余内容按照权重去分配
[小结]:
通过Android Studio新建的项目,入口文件是/app/src/main/java/com.skypan.helloworld/MainActivity
class MainActivity : AppCompatActivity() {override fun onCreate (saveInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}
}其中setContentView使用到了activity_main:总体的布局样式
2.1.2 RelativeLayout(相对布局)
[最常见属性]:
android:layout_toLeftOf: 在谁左边android:layout_toRightOf: 在谁右边android:layout_alignBottom: 跟谁底部对齐android:layout_alignParentBottom: 跟父元素底部对齐android:layout_below: 在谁的下面
[栗子]:
靠父元素右下角对齐
RelativeLayoutViewandroid:idid/view_1android:layout_width100dpandroid:layout_height100dpandroid:background#000000android:layout_alignParentBottomtrueandroid:layout_alignParentRighttrue/
/RelativeLayoutView2相对于View1的右边对齐
RelativeLayoutViewandroid:idid/view_1android:layout_width100dpandroid:layout_height100dpandroid:background#000000/Viewandroid:idid/view_2android:layout_width100dpandroid:layout_height100dpandroid:background#FF0033android:layout_toRightOfid/view_1/
/RelativeLayout2.2 TextView
文字大小、颜色显示不下使用…文字 icon中划线、下划线
[栗子]:
1.写一个宽度随父元素,高度等于文本高度的按钮控件
LinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:orientationverticalButtonandroid:idid/btn_textviewandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textTextView/
/LinearLayout2.点击Button类实现跳转
// MainActivity.java
import andoridx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;public class MainActivity extends AppCompatActivity {// 声明 buttonprivate Button mBtnTextView;overridepretected void onCreate(Bundle saveInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mBtnTextView (Button) findViewById(R.id.btn_textview);mBtnTextView.setOutClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {// 跳转到TextView演示界面Intent intent new Intent(packageContext: MainActivity.this, TextViewActivity.class);startActivity(intent);}})}
}3.能在MainActivity中使用TextViewActivity的原因AndroidMainfest.xml配置如下:
applicationandroid:allowBckuptrue...activity android:name.MainActivityintent-filteraction android:nameandroid.intent.action.MAIN /category android:nameandroid.intent.category.LAUNCHER //intent-filter/activity4.Java操作的TextView: android:idid/tv_4
// TextViewActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.widget.TextView;
import android.os.Bundle;
public class TextViewActivity extends AppCompatActivity {private TextView mTv4;overrideprotected void onCreate (Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_text_view);// 获取 id.tv_4mTv4 (TextView) findViewById(R.id.tv_4);// 给 id.tv_4划线mTv4.getPaint().setFlags(Paint.STRING_THRU_TEXT_FLAG);// 去锯齿mTv4.getPaint().setAntiAlias(true)}
}2.3 Button
文字大小、颜色自定义背景形状自定义按压效果点击事件
Button样式(简单)
activity_main.xml
Buttonandroid:idid/btn_buttonandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textButtonandroid:layout_marginTop10dp /使用java操作控件
// MainActivity.java// 声明控件
private Button mBtnButton
// 找到按钮 btn_button
mBtnButton (Button) findViewById(R.id.btn_button);
// 给 mBtnButton 添加点击事件
mBtnButton.setOnClickListener(new View.OnClickListener(){// 点击按钮后执行的操作
})实现跳转
import andoirdx.appcompat.app.AppCompatActivity;
import andoird.widget.Button;
import android.content.Intent;public class MainActivity extends AppCompatActivity {// 声明buttonprivate Button mBtnButton;overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 找到按钮mBtnButton (Button) findViewById(R.id.btn_button);mBtnButton.setOnClickListener(new View.OnClickListener() {ovrridepublic void onClick(View v) {// 跳转到 Button 演示界面Intent intent new Intent( packageContext: MainActivity.this, ButtonActivity.class);startActivity(intent);}})}
}做一个矩形的按钮
1.在res/drawable - New - Drawable resource file - btn_2.xml代码如下:
?xml version1.0 encodingutf-8?
shape xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:shaperectanglesolidandroid:color#ffffff /cornersandroid:radius15dp /按压效果
res/drawable/bg_btn4.xml样式
?xml version1.0 encodingutf-8?
selector xmlns:androidhttp://schemas.android.com/apk/res/androiditem android:state_pressedtrueshapesolid android:color#cc7c00 /corners android:radius15dp //shape/itemitem android:state_pressedfalseshapesolid android:color#ff9900corners android:radius15dp //shape/item
/selector引用如下activity_button.xml
Buttonandroid:idid/btn_4android:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_belowid/btn_3android:layout_marginTop5dpandroid:textButton 4android:textSize20spandroid:textColor#0066ffandroid:backgrounddrawable/bg_btn4 /点击按钮,响应Toast
假设有按钮如下: activity_button.xml
Button...android:onClickshowToast /对应Java文件 ButtonActivity.java 中加入如下:
public void showToast(View view) {Toast.makeText(context: this, text:点击, Toast.LENGTH_SHORT).show();
}[报错]:
Could not find method showToast(View) in a parent or ancestor Context for android: 写按钮触发事件的时候,没有传入参数 View view,将public void showToast()改为public void showToast(View view)
点击按钮,响应Toast[方法2]
[核心方法] :Button.setOnClickListener()假设有按钮如下: activity_button.xml
Buttonandroid:idid/btn_3....
/对于的Java文件ButtonActivity.java中加入如下:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.Toast;
import android.view.View;public class ButtonActivity extends AppCompatActivity {private Button mBtn3;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mBtn3 (Button) findViewById(R.id.btn_3);mBtn3.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {Toast.makeText(ButtonActivity.this, btn3被点击, Toast.LENGTH_SHORT).show();}})}
}给TextView控件添加点击事件
TextView控件activity_button.xml,如下:
TextViewandroid:idid/tv_1...
/在Java中获取控件,并设置点击事件ButtonActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
import android.view.View;public class ButtonActivity extends AppCompatActivity {private TextView mTv1;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// tv_1的点击事件mTv1 (TextView) findViewById(R.id.tv_1);mTv1.setOnClickListener(new View.OnClickListener(){Overridepublic void onClick(View v) {Toast.makeText(ButtonActivity.this, TextView被点击, Toast.LENGTH_SHORT).show();}})}
}2.4 EditText(输入控件)
常用属性监听事件制作登录界面
2.4.1 加一个跳转页面的按钮
按钮样式: activity_main.xml
Buttonandroid:idid/btn_edittextandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:textEditTextandroid:textAllCapsfalse/按钮的点击事件: MainActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.context.Intent;
import android.widget.Button;
import android.view.View;public class MainActivity extends AppCompatActivity {// 声明buttonprivate Button mBtnEditText;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 找到 btn_edittextmBtnEditText (Button) findViewById(R.id.btn_edittext);mBtnEditText.setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View v) {// 跳转到 EditText 界面// 这里先假设有 EditTextActivityIntent intent new Intent(MainActivity.this, EditTextActivity.class);startActivity(intent);}});}
}按钮的活动页面: activity_edit_text.xml
?xml version1.0 encodingutf-8?
RelativeLayout xmlns:androidhttp://schemas.android/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:padding15dpEditTextandroid:idid/et_1android:layout_widthmatch_parentandroid:layout_height50dpandroid:textSize16spandroid:textColor#ffad33android:hint用户名/EditTextandroid:idid/et_2android:layout_widthmatch_parentandroid:layout_height50dpandroid:layout_belowid/et_1android:hint密码android:inputTypetextPasswordandroid:layout_marginTop5dp/
/RelativeLayout给用户名输入框activity_edit_text.xml加样式输入控件如下
EditTextandroid:idid/et_1...android:backgrounddrawable/bg_username
/在res/drawable - New - Drawable resource file - bg_username.xml(shape)写入形状如下:
?xml version1.0 encodingutf-8?
shape xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:shaperectanglestrokeandroid:width1dpandorid:color#999999 /cornersandroid:radius5dp/