Android开发(1)——AS资源介绍
2020-11-22 本文已影响0人
让时间走12138
本节内容
1.Activity界面和layout布局
2.主界面布局
3.监听按钮点击事件
4.界面跳转和横竖屏
5.添加动画和动画优化
一、Activity界面和layout布局
* Activity用来管理界面的生命周期和交互
* 具体的界面需要自己配置 在res ->layout-> .xml文件里
* 通过setContentView来关联layout布局和代码
* 所有的资源文件都会有一个id和它对应 要访问这些资源
* R.layout.activity_main
* R.drawable.1.jpg
二、主界面布局
1.可以直接从外部拖动一张图片到res ->drawable下
2.然后在xml布局页面,拖动一个imageView控件,然后选择自己提供的图片即可。点击该图片,在右侧修改它的宽度和高度。
3.拖动该图片四条边上的点,进行布局,否则会默认显示在模拟器的左上角。该行为是为了确定图片相对于模拟器的x和y坐标。用来确定它的具体的位置。
4.拖动一个TextView添加到主界面,再对其进行布局。可以在code代码里面修改里面的文本。也可以在右侧的text属性里面修改文本内容。
5.为了方便修改文本里面的内容,可以在values里面的strings.xml里面添加一个title属性
<resources>
<string name="app_name">Android开发</string>
<string name="title">安卓开发</string>
<string name="loginButton">登录</string>
</resources>
6.然后在xml右侧的属性text里,点击右侧那个小空格,然后选择strings.xml里的title,这样以后就可以直接在strings.xml里面修改文本的内容了。
7.拖动一个Button添加到主界面,选择它的大小为wrep_content,意思就是里面的文本多大,这个按钮就多大。还可以自己设置按钮的背景颜色,字体的颜色也可以自行设置。可以通过右上角的搜索,自己搜索属性修改。同理,Button也和TextView一样,可以通过strings.xml里面的loginButton灵活更改按钮的内容。
8.经过上述布局以后,我们运行了一下模拟器之后得到如下结果:
image.png
三、监听按钮点击事件
1.先给需要添加点击事件的按钮添加一个id
2.第一种方法:在MainAcitvity里面继承一个View.OnClickListener的接口,然后在主类里面添加以下语句,并实现它的OnClick方法
mLoginButton.setOnClickListener(this)
override fun onClick(v: View?) {
println("1.按钮被点击了")
}
3.第二种方法:匿名对象的方式
mLoginButton.setOnClickListener (object :View.OnClickListener {
override fun onClick(v: View?) {
println("2.按钮被点击了")
}
})
4.第三种方法:lambda表达式
mLoginButton.setOnClickListener({view:View?->
println("4.按钮被点击了")
})
5.第四种方法:不要那个括号,直接写在外面,连参数也可以省略(最终版本)
mLoginButton.setOnClickListener{
println("4.按钮被点击了")
}
四、界面跳转和横竖屏
1. 添加旋转动画,动画结束之后再跳转到下一个界面
2.添加一个界面,先添加一个DeatailAvtivity类,和MainActivity继承自同样的父类。然后再给它配置一个类似的xml文件
class DeatailAvtivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_detail)
}
}
3.使用startActivity方法进行界面的跳转
startActivity(Intent(this@MainActivity,DeatailAvtivity::class.java))
4.如果想再页面跳转之后为其添加一个箭头,让它又可以跳转回原来的界面,只需要我们在AndroidManifest里面给它添加一个父页面即可。
<activity android:name=".DeatailAvtivity"
android:parentActivityName=".MainActivity"
android:screenOrientation="portrait"/>
5.如果想让它跳转到横屏默认的界面,就需要先创建一个layout_land的activity_xml文件,然后设置orientation为landscape(也就是横着的)。这样下次点击按钮之后就会跳转到横屏的界面。

五、添加动画和动画优化
1.添加一个属性动画,动画有旋转 、平移 、缩放、 透明度等类型。其中mHeader为添加动画的控件,rotation为旋转动画,后面为从0度转到360度。 duration =100为动画持续一次的时间,repeatCount=6为动画重复的次数。如果想让动画结束了之后再进行跳转,就要给动画添加一个监听事件。直到动画结束了之后才进行页面跳转。
ObjectAnimator.ofFloat(mHeader,"rotation",0f,360f).apply {
duration =100
repeatCount=6
start()
addListener(object :MyAnimatorListener(){
override fun onAnimationEnd(animation: Animator?) {
startActivity(Intent(this@MainActivity,DeatailAvtivity::class.java))
}
})
}
2.因为不想实现Animator.AnimatorListener的所有方法,所以我们会自己建一个类,然后继承Animator.AnimatorListener接口,再在里面实现Animator.AnimatorListener的方法,然后我们的匿名对象再继承自我们创建的这个类。这样就可以选择需要的方法进行重写,不用把所有的方法都列出来了。
open class MyAnimatorListener:Animator.AnimatorListener{
override fun onAnimationRepeat(animation: Animator?) {
}
override fun onAnimationEnd(animation: Animator?) {
}
override fun onAnimationCancel(animation: Animator?) {
}
override fun onAnimationStart(animation: Animator?) {
}
}
好的,以上就是全部内容了,再见。