安卓学习控件篇
TextView(文字展示)
基础属性:
- layout_width: 组件的宽度
- layout_height: 组件的高度
- id: 为TextView 设置一个组件ID
- text:设置显示的文本内容
- textColor:设置字体颜色
- textStyle:设置字体风格:正常(norrmal),bold(加粗),italic(斜体)
- textSize:字体大小,单位一般是用SP
- background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片
- gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等
带阴影的TextView
- android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用
- android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0
- android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
- android:shadowDy:设置阴影在垂直方向的偏移,就是水平方向阴影开始的纵坐标位置
跑马灯效果的TextView
- android:singleLine:内容单行显示
- android:focusable:是否可以获取焦点
- android:focusableInTounchMode:用于控制视图在触摸模式下是否可以聚焦
- android:ellipsize:在哪里省略文本
- android:marqueeRepeatLimit:字幕动画重复的次数
Button(按钮)
StateListDrawable
StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点我们只需要将Button的background属性设置为该drawable资源即可轻松实现,按下按钮时不同的按钮颜色或背景
- drawable:引用的Drawable位图
- state_focused:是否获得焦点
- state_pressed:控件是否被按下
- state_enabled:控件是否可用
- state_selected:控件是否被选择,针对有滚轮的情况
- state_checked:控件是否被勾选
- state_checkable:控件可否被勾选,eg:checkbox
- state_window_focused:是否获得窗口焦点
- state_active:控件是否处于活动状态,eg:slidingTab
- state_single:控件包含多个子控件时,确定是否只显示一个子控件
- state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态
- state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态
- state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态
Button事件处理
- 点击事件
//点击事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.e(TAG, "onClick: " );
}
});
- 长按事件
// 长按事件
btn.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
Log.e(TAG, "onLongClick: ");
return false;
}
});
- 触摸事件
//触摸事件
btn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
Log.e(TAG, "onTouch: "+motionEvent.getAction());
return false;
}
});
EditText(输入框)
主要属性
- android:hint 输入提示
- android:textColorHint 输入提示文字的颜色
- android:inputType 输入类型
- android:drawableXxxx在输入框的制定方位添加图片
- android:drawablePadding 设置图片与输入内容的间距
- android:paddingXxxx设置内容与边框的间距
- android:background背景色
ImageView(图片)
主要属性
- android:src 设置图片资源
- android:scaleType 设置图片缩放类型
- fitStart 保持宽高比缩放图片,知道较长的边与Image的边长相等,缩放完成后将图片放在ImageView的左上角
- fitCenter默认值,同上,缩放后放于中间
- fitEnd同上,缩放后放于右下角
- fitXY 对图像的横纵方向进行独立缩放,使得该图片完全适应ImageView,但是图片的宽高比可能会发生变化改变
- center保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理
- centerCrop保持宽高比缩放图片,直到完全覆盖ImageView,可能会出现图片的显示不完全
- centerInside保持宽高比缩放图片,知道ImageView能够完全地显示图片
- matrix不改变原图的大小,从ImageView的左上角开始绘制原图,原图超过ImageView的部分作裁剪处理
- android:maxHeight 最大高度
- android:maxWidth 最大宽度
- android:adjustViewBounds调整View的界限
ProgressBar(进度条)
- android:max:进度条的最大值
- android:progress: 进度条已完成进度值
- android:indeterminate:如果设置成true,则进度条不精确显示进度
- style=“?android:attr/progressBarStyleHorizontal” 水平进度条
Notification(通知)
Notification与NotificationManager
创建一个NotificationManager
NotificationManager类时一个通知管理器类,这个对象是由系统维护的服务,是以单例模式的方式获得,所以一般并不直接实例化这个对象,在Activity中,可以使用Activity.getSystemService(String)方法获取NotificationManager对象,Activity.getSystemService(String)方法可以通过Android系统级服务的句柄,返回对应的对象。在这里需要返回NotificationManager。所以直接传递Context.NOTIFICATION_SERVICE即可。
使用Builder构造器来创建Notification对象
使用NotificationCompat类的Builder构造器来创建Notification对象,可以保证程序在所有的版本上都能正常工作.Android8.0新增了通知渠道这个概念,如果没有设置,则通知无法在Android8.0的机器上显示
NotificationChannel
通知渠道:Android8.0引入了通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道
通知重要程度设置,NotificationManager类中
- IMPORTANCE_NONE 关闭通知
- IMPORTANCE_MIN 开启通知,不会弹出,但没有提示音,状态栏中无显示
- IMPORTANCE_LOW 开启通知,不会弹出,不发出提示音,状态栏中显示
- IMPORTANCE_DEFAULT 开启通知,不会弹出,发出提示音,状态栏中显示
- IMPORTANCE_HIGH 开启通知,会弹出,发出提示音,状态栏中显示
常见方法说明
- setContentTitle(String string)设置标题
- setContentText(String string) 设置文本内容
- setSmallIcon(int icon)设置小图标
- setLargeIcon(Bitmap icon)设置通知的大图标
- setColor(int argb)设置小图标的颜色
- setContentIntent(PendingIntent intent)设置点击通知后自动清除通知
- setAutoCancel(boolean boolean) 设置点击通知后自动清除通知
- setWhen(long when)设置通知被创建的时间
ToolBar(导航栏)
- android:layout_width=“match_parent”
- androld:layout_helght=“”?attr/actionBarSize""
- androld:background=“#ffff00”
- app:navigationlcon=“@drawable/ic_baseline_arrow_back_24"”
- app:title=““主标题””
- app:titleTextColor=“#ff0000"”
- app:titleMarginStart=“90dp”
- app:subtitle=“子标题”
- app:subtitleTextColor=“#00ffff”
- app:logo=“@mipmap/ic_launcher”
AlertDialog (弹出框)
- AlertDialog.Builder builder=new AlertDialog.Builder(context);构建Dialog的各种参数
- Builder.setIcon(int iconId);添加ICON
- Builder.setTitle(CharSequence title);添加标题
- Builder.setMessage(CharSequence message);添加消息
- Builder.setView(View view);设置自定义布局
- Builder.create(); 创建Dialog
- Builder.show(); 显示对话框
- setPositiveButton 确定按钮
- setNegativeButton 取消按钮
- setNeutralButton 中间按钮
PopupWindow(子窗口)
- setContentView(View contentView):设置PopupWindow显示的View
- showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移
- showAsDropDown(View anchor,int xoff,int yoff):相对某个控件的位置,有偏移
- setFocusable(boolean focusable) 设置是否获取焦点
- setBackgroundDrawable(Drawable background)设置背景
- dismiss()关闭弹窗
- setAnimationStyle(int animationStyle)设置加载动画
- setTouchable(boolean touchable)设置触摸使能
- setOutsideTouchable(boolean touchable)设置PopupWindow外面的触摸使能