首先我们先来了解一下基础的三个Android控件:Textview, Button, ImageView。
以下试验采用的都是LinearLayout(线性布局)。
并在LinearLayout标签属性中加入以下语句,代表垂直放置控件。
android:orientation="vertical"
1、三个基本控件
1.1、TextView
首先我们了解一下这些属性的意思。
1、android:layout_width:属性代表着控件的宽度,该属性的值是wrap_content, 表示该控件的宽度根据内容的高度进行改变。
2、android:layout_height:属性代表着控件的高度,该属性的值是wrap_content,表示控件的高度根据内容的高度进行改变。
(与之向对应的有:match_parent, 表示该控件的长(或宽)与父视图的长(或宽)相同。)
3、android:text:属性就是用来设置TextView显示的值的。
看一下实际的效果。
1.2、Button
与Textview中的属性基本相同,直接来看实际效果。
1.3、ImageView
1、srcCompat:这个属性用于获取图片的存放位置
上一次我们谈到res资源文件夹,其中图片就放在其drawable文件夹中。
实际效果:
了解了这三个基本控件,我们来用Button控件,做点有意思的事情。
2、添加按钮点击事件的三种方式
首先我们第一步需要获取控件。
要获取到控件,我们需要给控件命名一个id,独一无二的id。
反斜杠后的字符串即为控件的id。
依次类推,我们给三个控件都加上id。
可以在Text界面给控件添加id,也可以在Design界面,直接添加。
接下来我们来获取控件。
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
获取控件的代码一定要写在这两句代码后,否则会出错。
Button button = findViewById(R.id.btn);
使用findViewById( )这个方法,获取到控件。R.id.btn,其中btn即为设置的ID。
获取完毕控件,我们来设置按钮的点击事件。
2.1第一种方式
这样设置点击事件的方式应该非常的熟悉,利用的是匿名内部类。
这里需要使用快捷键ctrl + alt + f 把变量都设置成类变量。
我们尝试点击后,改变TextView的内容为:Goodnight, World!
@Override
public void onClick(View v) {
textView.setText("Goodnight World!");
}
让我们打开虚拟设备,来看看运行效果。
这里简单的介绍一下,如何创建一个虚拟设备。
在工具栏中找到红箭头指向的图标。
添加一个新的虚拟设备。
选择一个合适的屏幕大小,并点击next。
选择合适的API等级进行设置,如果没有的话,可以在x86 Image中自行下载,点击next。
在AVD Name中设置虚拟机名字,最后Finsh。
稍等片刻,就可以看到虚拟机设置成功啦。
如果觉得虚拟机内存之类的不够大,可以点击这个铅笔箭头,进行修改。
点击Show Advanced Settings,进行个性化设置。
这里就不一一赘述了。
将代码运行到虚拟机上实际效果:
点击工具栏的绿色三角将应用安装到虚拟机上。
成功改变了TextView中的内容,但是再次点击BUTTON的时候,什么都不会发生的,只能点击一次。
2.2、第二种方式
通过自定义单击事件监听类来实现,与第一种方式非常类似,只不过可以重复使用。
这里用setImageResource( )方法,更换图片。
同时加了吐司Toast,使用其makeText( )方法,来显示一些内容。
第一个参数为指定上下文,第二个是显示的内容,第三个是显示时间的长短。
注意使用Toast的时候,不要忘记show( ),否则Toast不会显示出来。
别忘了注释掉第一种方式,并重新写入代码。
button.setOnClickListener(new MyCilckListener());
让我们来看一下实际效果。
这里可以点击这个闪电的图标,加快应用加载到虚拟机上的速度。
2.3第三种方式
在activity_main.xml文件中,点击按钮控件,在Onclick属性里输入点击事件。
回到 MainActivity.java文件中,编写click( )方法。
实际效果:
到此为止三种方法都已经编写完成,最经常使用的还是第三种方法,匿名内部类的方法也使用的比较多。
3、Toast
这里我们讨论一下Toast的一些基本用法。
例如,如何改变Toast的位置,让Toast吐出一个布局,让Toast吐出一个图片……..
3.1改变Toast位置
首先,来看最简单的,如何改变Toast位置,只需要调用一个方法即可。
//获取一个Toast对象
Toast toast = Toast.makeText(this, "嘤嘤嘤",Toast.LENGTH_SHORT);
//设置Toast的位置
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
setGravity( )的后两个参数分别是xOffset,yOffset。
除了有Gravity.CENTER,还有TOP, BOTTOM。
来看一下效果图。
3.2Toast一个布局
LayoutInflater inflater =LayoutInflater.from(MainActivity.this);
View view = inflater.inflate(R.layout.activity_main, null);
Toast toast = Toast.makeText(this, "嘤嘤嘤", Toast.LENGTH_SHORT);
toast.setView(view);
toast.show();
实际效果:
3.3Toast一张图片
Toast toast = Toast.makeText(this, "嘤嘤嘤", Toast.LENGTH_SHORT);
ImageView imageView = new ImageView(MainActivity.this);
imageView.setImageResource(R.mipmap.ic_launcher);
toast.setView(imageView);
toast.show();
3.4Toast一张图片加文字
到此,本次的内容已经全部结束啦~
感谢阅读~