控件一:TextView 【2021最新版】Android(安卓)开发零基础入门课程【全套】(由小米、阿里、腾讯、爱奇艺一线大厂老师打造)_哔哩哔哩_bilibili
从字面意思上看,TextView就是文本视图,只是用来显示文字的。在iOS中就叫做标签,即为UILabel。要想在Activity中显示TextView, 我们需要在相应的布局文件,也就是Activity对应的layout.xml文件去添加相应的控件标签。这些xml标签可以确定控件的位置,大小,颜色等属性。下方是在Activity中显示一个TextView。
基本的属性
android:layout_width=""
android:layout_height=""
android:text=""
android:textColor=""
android:textStyle=""字体的风格
android:textSize=""字体的大小
android:background=""textView背景颜色
android:gravity=""内容的位置或者布局
给TextView的相关内容设置阴影
android:shadowColor="#FF0000"设置阴影的颜色
android:shadowDx="3" 设置阴影在X轴的偏移程度
android:shadowRadius="3.0"设置阴影的宽度
android:shadowDy="2" 设置阴影在Y轴的偏移程度
跑马灯的相关效果的实现:
android:singleLine="true" 内容单行显示 android:focusable="true" 是否获取焦点 android:focusableInTouchMode="true" 触摸条件下获取焦点 android:ellipsize="marquee"在哪里省略文本 android:marqueeRepeatLimit="marquee_forever" 字幕动画重复的次数 android:clickable="true"
控件二:EditText EditText
接下来要为Activity添加一个输入框,在Android中输入框的类型和标签都是EditText。iOS中的输入框就是UITextField了,其实两者用法类似,其功能都是接收用户输入的数据的。下方是其xml布局方式.
hint属性:设置提示字
textColorHint:设置提示字的颜色
textColor:输入字的颜色
maxLine:最大可以输入的行数
android:drawableLeft=""在输入框的左边添加图片
android:padding=""设置内容与边距的距离
android:background=""背景颜色
android:inputType="text"输入的数据类型
控件三:Button
在Android中的按钮就叫Button, 而在iOS中则叫UIButton。其两者的用法极为相似。还是和上面类似,我们需要在Activity对应的布局文件layout.xml中添加一个Button, 具体的xml代码如下所示。
android:color="#000000"
android:state_pressed="false"
android:state_checked="true"控件是否被勾选
android:state_focused="true"是否获得焦点
android:state_enabled="true" 空间是否可用
android:state_selected="true" 空间是否被选择,针对的是有滚轮的情况下
按钮长安变色的实现过程:
selector xmlns:android="http://schemas.android.com/apk/res/android">
android:color="@color/purple_700" android:state_pressed="true"表示长按按钮的时候按钮颜色变为什么色
android:color="@color/purple_700" android:state_pressed=“false" 不按时按钮的颜色为什么色
三大事件:点击事件 、长按事件、触摸事件。
声明控件
得到控件id
创立相对应的事件
@Override
protected void onCreate(Bundle savedInstanceState) {
Button but1;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_button);
but1 = findViewById(R.id.button11);
but1.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View view) {
//点击事件
}
});
but1.setonLongClickListener(new View.onLongClickListener() {
@Override
public boolean onLongClick(View view) {
//长按事件
return false;
}
});
but1.setonTouchListener(new View.onTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return false;
//触摸事件
}
});
}
控件四:AlterDialog(警告框)
Toast用来显示提示内容,而AlterDialog是警告框,上面可以有一些控件,比如按钮等。AlterDialog其实就是iOS中的AlterView(在iOS8后有增加了UIAlterController)。下面的代码是初始化AlterDialog并且进行显示的代码,下方的代码是放在点击按钮所触发的方法当中。
(1)AlterDialog通过AlterDialog的Builder进行创建,在创建的时候会指定该AlterDialog在那个Activity上进行显示。
(2)通过setTitle方法给AlterDialog设置标题,通过setMessage给AlterDialog设置内容。
(3)setCancelable()方法,我们在这儿设置的时false,表示弹出的AlterDialog在用户点击返回键是不消失,该值默认是true。
(4)setPositiveButton()方法是设置点击“确定”按钮时的事件, setNegativeButton是设置点击“取消”按钮的事件。通过Toast来展示事件的点击。
AlterDialog.Builder builer = new AlterDialog.Builder(this);首先进行创建
通过setTitle方法给AlterDialog设置标题
通过setMessage给AlterDialog设置内容。
setPositiveButton()方法是设置点击“确定”按钮时的事件, setNegativeButton是设置点击“取消”按钮的事件。通过Toast来展示事件的点击。
public void onlick(View view) {
alertDialog.Builder builder = new alertDialog.Builder(this);
builder.setIcon(R.mipmap.ic_launcher)
.setTitle("我是对话框")
.setMessage("今天天气这么样?")
.setPositiveButton("确定", new DialogInterface.onClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.e(TAG, "onClick:点击了确定");
}
})
.setNegativeButton("取消", new DialogInterface.onClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.e(TAG, "onClick: 点击了取消" );
}
})
.setNeutralButton("中间", new DialogInterface.onClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
Log.e(TAG, "onClick:点击了中间 " );
}
})
.create().show();
}
控件五:ProgressBar(进度条)
进度条,就是平时下载东西常见到表示下载进度的控件。ProgressBar和iOS中的 UIProgressView类似,用法也是非常类似的。首先需要在Activity对应的Xml文件中对ProgressBar进行布局和样式的设定。下方是ProgressBar的布局和样式。
xml:java代码块: public void ProgressBar(View view) { ProgressBar progressbar = findViewById(R.id.ProgressBar); if (progressbar.getVisibility()== view.GONE){ progressbar.setVisibility(View.VISIBLE); }else{ progressbar.setVisibility(view.GONE); } }
控件六 :Notification
1.NotificationChannel channel
通知的渠道,Android8.0引入了通知的渠道,其允许您为要现实的每种通知类型创建用户可自定义的渠道。
NotificationManager.importANCE_HIGH 开启通知,会弹出,发出提示声,状态栏中显示
NotificationManager.importANCE_NONE关闭通知
NotificationManager.importANCE_MIN 开启通知,不会弹出,但没有提示声,状态栏中无显示
NotificationManager.importANCE_LOW 开启通知,不会弹出,不发出提示音,状态栏中显示
NotificationManager.importANCE_DEFAULT 开启通知,不会弹出,发出提示音,状态栏中显示
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
NotificationChannel channel = new NotificationChannel("jiang", "测试通知", NotificationManager.importANCE_MIN);
manager.createNotificationChannel(channel);
}
2.创建Notification Buider:
创建Notifiction时,可以用NotificationCompat.Builder对象来指定Notification的UI内容,一个NotificationCompat.Builder对象至少包含以下内容,
setColor 设置小图标的颜色
setLargeIcon设置大图标
setWhen 设置通知的时间
setContentIntent(pendingIntent intent)设置点击事件后的跳转意图
setContentIntent使用方法:
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,0);
notification= new NotificationCompat.Builder(this,"jiang")
.setContentTitle("通知标题")
.setSubText("世界这么大,我想去看看")
.setSmallIcon(R.drawable.abc_vector_test)
.setContentIntent(pendingIntent)
.build();
setAutoCancel()设置点击事件后自动清除通知
notification= new NotificationCompat.Builder(this,"jiang")
.setContentTitle("通知标题")
.setSubText("世界这么大,我想去看看")
.setSmallIcon(R.drawable.abc_vector_test)
.setColor()
.setLargeIcon()
.setAutoCancel()
.setWhen()
.setContentIntent(PendingIntent intent)
.build();
注意:在使用setSmallIcon()设置小图标的时候
android从5.0系统开始,对于通知栏图标的设计进行了修改 , 现在Google要求,所有应用层的通知图标,应该只使用alpha图层,而不能使用包括RGB图层。
3.发送:
manager.notify(1 ,notification);
控件七:IamgeView
android:scaleType="centerInside"
center相关的属性和fit相关的属性。具体如下
android:scaleType="centerInside" 最终目的是将图片放在imageView中,不管是放大和缩小
android:scaleType="centerCrop"
android:scaleType="fitstart" 保持图片的宽高比缩放图片,知道较长的边和imageView的边长相等,并且把缩放后的图片放在左上角。
android:scaleType="fitend" 保持图片的宽高比缩放图片,知道较长的边和imageView的边长相等,并且把缩放后的图片放在右下角。
android:scaleType="fitcenter"保持图片的宽高比缩放图片,知道较长的边和imageView的边长相等,并且把缩放后的图片放在中间。
android:scaleType="fitXY" 把图片的横纵都进行放缩,知道图片填充满整个image,图片的得长宽高比例可能被改变。
android:maxHeight="200dp" android:maxWeight="200dp"
android:adjustViewBounds="true
控件八:Toolbar控件
layout-width 设置宽度
layout-height 设置高度
background 设置背景颜色
APP:title 设置标题
APP:subtitle 设置子标题
APP:subtitleTextColor设置子标题的颜色
相关的属性也可以在java代码块中进行设置
注意导包问题:
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#0CFFFF"
app:navigationIcon=""
app:title="标题"
app:titleTextColor="#000000"
app:subtitle="@string/text_1"
app:subtitleTextColor="#FF3300"
app:logo=""
android:id="@+id/toolBar"
java块:
Toolbar toolbar = findViewById(R.id.toolBar);
toolbar.setNavigationOnClickListener(new View.onClickListener() {
@Override
public void onClick(View view) {
Log.e("loe", "onClick: toolbar事件" );
}
});



