android常用布局和控件

一、布局管理器:
LinearLayout(线性布局):
    常用属性:id(@+id/),layout_margin,layout_width(wrap_content,match_parent,200dp),layout_padding,layout_height,orientation(vertical,horizontal),background,
    gravity(控制组件所包含的子元素的对齐方式),layout_weight控制该组件在父容器里的对齐方式(1,2剩余空间按照权重均分layout_width="0dp"),divider分割线,
    showDividers设置分割线所在位置,dividerPadding设置分割线的padding
RelativeLayout(相对布局):
    常用属性:根据父容器定位(layout_alignParentBottom,layout_centerVertical);根据兄弟组件定位(layout_toLeftOf,layout_below,layout_toRightOf,layout_alignBottom)
FrameLayout(帧布局)
    常用属性:foreground设置前景;foregroundGravity设置前景位置;
TableLayout(表格布局)和TableRow一起使用
    常用属性:collapseColumns设置需要被隐藏列的序号;stretchColumns设置允许被拉伸列的序列号;shrinkColumns设置允许被收缩列的序列号;
    子控件属性:layout_column显示在第几列;layout_span横向跨几列;
GridLayout(网格布局)
    常用属性:orientation;columnCount设置每行显示多少列数;rowCount设置每列显示多少行数;
    子控件属性:column显示在第几列;columnSpan横向跨几列;columnWeight横向剩余空间分配方式;gravity在网格中的显示位置;
            row显示在第几行;rowSpan横向跨几行;rowWeight纵向剩余空间分配方式;
ConstraintLayout(约束布局)
    常用属性:

二、控件
颜色:00000000(八位:前两位为透明度,红,绿,蓝)
1、TextView:
    基础属性:layout_width,layout_height,id,text,textColor,textStyle,textSize(sp),background,maxLines,ellipsize,gravity(设置空间中内容的对齐方向,
textview中是文字,imageview中是图片)
    字体阴影:shadowColor和shadowRadius,shadowDx,shadowDy,
    文字+icon:drawablePadding,drawableRight
    跑马灯:singleLine,focusable,focusableInTouchMode,ellipsize,marqueeRepeatLimit(android:clickable="true"/<requestFocus/>/自定义实现TextView-isFocused)
2、StateListDrawable:StateListDrawable是Drawable资源的一种,可以根据不同的状态设置不同的图片效果,关键节点<selector>,我们只需要将Button的background属性设置为
该drawable资源即可轻松实现按下按钮时不同的按钮颜色或背景
    drawable:引用Drawable位图;state_focused:是否获得焦点;state_pressed:控件是否被按下;state_enabled:控件是否可用;state_selected:空间是否被选择;
    state_checked:控件是否被勾选;state_checkable:控件是否被勾选;state_window_focused:是否获得窗口焦点;state_active:控件是否处于活动状态;
    state_single:控件包含多个子控件时确定是否只显示一个子控件;state_first:控件包含多个子控件时确定中间一个子控件是否处于显示状态;
    state_last:控件包含多个子控件时确定最后一个子控件是否处于显示状态;
3、shade:形状(ring-圆环,oval-椭圆,rectangle-长方形,line-线)
    size:大小;solid:固体即平面填充;corners:(radius)角落的弯曲程度;stroke:(width)描边;gradient:线性渐变;padding:边距;
4、Button
    文字大小、颜色;自定义背景形状;自定义按压效果;点击事件;
    textAllCaps="false"//英文字母不会全大写
    Toast.makeText(this,"点击我了!",Toast.LENGTH_SHORT).show()
5、EditText
    hint(提示信息);inputType="textPassword";drawableLeft,drawablePadding,maxLines="1";maxLength="20"
    addTextChangedListener(new TextWatcher(){})//监听内容变化事件
    Log.d("标记","内容")
6、RadioButton
    常用属性:RadioGroup(orientation),RadioButton(checked='true');自定义样式:button="@null",background;监听事件:RadioGroup.setOnCheckedChangeListener;
    onCheckedChanged(RadioGroup radioGroup(单选组), int i(选中radiobutton的id))
7、CheckBox
    常用属性:;自定义样式:button="@drawable/chech_box";监听事件:CheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener());
8、ImageView
    Button的其他衍生控件:ToggleButton,Switch
    常用属性:src,maxHeight,maxWidth,adjustViewBounds,scaleType:fitXY(撑满控件,宽高比可能发生改变)fitCenter(保持宽高比缩放直至能够完全显示)centerCrop(保持宽高比缩放直至完全覆盖控件裁剪显示)
    加载网络图片:使用第三方插件:glide同步,Picasso加载网络图片的操作是异步操作;在build.gradle中引入插件,在manifest中申请一个网络请求;
9、ListView
    常用属性:listSelector,divider,dividerHeight
    Adapter接口:LayoutInflater是用来找layout下xml布局文件并且实例化,而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。
    对于一个没有被载入或者想要动态加载的界面,都需要使用LayoutInflater.inflate()来载入
10、GridView
    常用属性:horizontalSpacing,verticalSpacing,numColumns
11、RecyclerView
    定义内部类ViewHolder并继承RecyclerView.ViewHolder,传入的view参数通常是RecyclerView子项的最外层布局;
    新增适配器并让其继承RecyclerView.Adapter,把泛型指定为定义的内部实体类ViewHolder并重新onCreateViewHolder(),onBindViewHolder()和getItemCount()三个方法;
    onCreateViewHolder()用于创建ViewHolder实例并把加载的布局传入到构造函数中去,再把ViewHolder实例返回;可以给widget添加onclick事件
    onBindViewHolder()用于对子项的数据进行赋值,会在每个子项被滚动到屏幕内时执行。position得到当前项的实体实例;可以给itemView添加onclick事件
    getItemCount()返回RecyclerView的子项数目;
    LayoutManager用于指定RecyclerView的布局方式,LinearLayoutManager是线性布局,GridLayoutManager是网格布局,StaggeredGridLayoutManager是瀑布流布局;
    RecyclerView.ItemDecoration:onDraw(在item下面绘制)onDrawOver(在item上面绘制)getItemOffsets(在item周边绘制)
    XRecyclerView:addHeadView,addFootView,下拉刷新,上拉加载
    不同ViewHolder加载
12、WebView
    加载网页:(1)加载URL(网络或者本地assets文件夹下的html文件)(2)加载html代码 (3)Native和JavaScript相互调用
                加载URL:webview.getSettings().setJavaScriptEnabled(true);//设置需要js支持webview.loadUrl("https://m.baidu.com") webview.loadUrl("file:///android_asset/test.html") 
                加载html代码:webview.loadData();webview.loadDataWithBaseURL();
    网页的前进后退:
        webview.canGoBack();webview.goBack();webview.canGoForward();webview.goForward();webview.canGoBackOrForward(int steps);webview.goBackOrForward(int steps)
    按下返回键,默认是退出当前Activity,如果希望是WebView内页面后退,需要重写onKeyDown方法
    public boolean onKeyDown(int keyCode,KeyEvent event){
        if((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()){
        webView.goBack();
        return true;
        }
        return super.onKeyDown(keyCode,event);
    }
13、Toast:是一个消息提示组件
    设置显示的位置:Toast toast = Toast.makeText(getApplicationContext(),"居中展示",Toast.LENGTH_SHORT);toast.setGravity(Gravity.CENTER,0,0);toast.show();
    自定义显示内容(添加一张图片) toast.setView()
14、AlterDialog:消息弹出对话框
    默认样式AlertDialog.Builder dialog = new AlertDialog.Builder(context).setTitle().setMessage().setPositiveButton().setNeutralButton().setNegativeButton()
    单选样式setItems();setSingleChoiceItems();setCancelable(false)//点击周围不会关闭;dialog.dismiss()//关闭dialog;
    多选样式setMultiChoiceItems()
    自定义样式setView()
15、ProgressBar&ProgressDialog
    设置进度条样式:style="@android:style/Widget.ProgressBar"
    设置进度条数值:progress.setProgress(5);
    Handler handler = new Handler();
    自定义进度条样式:indeterminateDrawable(animated-rotate);等价于style="@style/MyProgress",所有控件都可以通过style设置样式
16、PopupWindow
    在按钮周围显示View
    PopupWindow popupWindow = new PopupWindow(View contentView, int width, int height);
    popupWindow.setOutsideTouchable(true);//设置点击外面可以收回
    popupWindow.setFocusable(true);//设置点击一次打开或回收
    popupWindow.showAsDropDown(pop1Button);//设置在按钮下方展示
17、Notification与NotificationManager
    NotificationManager类是一个通知管理器类是由系统维护的服务
    使用NotificationCompat类的Builder构造器来创建Notification对象,可保证程序在所有的版本上都能正常工作。Android8.0新增了通知渠道概念如果没有设置则通知无法在Android8.0的机器上显示
    Notification常见方法:setContentTitle(String title)设置标题 setContentText(String text)设置文本内容 setSmallIcon(int icon)设置小图标
        setLargeIcon(Bitmap icon)设置通知大图标 setColor(int argb)设置小图标的颜色 setContentIntent(PendingIntent intent)设置点击后的跳转意图
        setAutoCancel(boolean bl)设置点击通知后自动清除通知 setWhen(long when)设置通知被创建的事件
        setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.smile)) setColor(Color.parseColor("#FF0000"))
18、Toolbar:androidx.appcompat.widget.Toolbar(<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">)
    app:title,app:navigationIcon,app:titleTextColor,app:titleMarginStart,app:subtitle,app:subtitleTextColor,app:logo
19、ViewPage(可左右滑动)
    PagerAdapter:getCount();instantiateItem();isViewFromObject();destroyItem();

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值