一.常用控件的属性

目录

1.TextView

2.Button

3.EditText

4.RadioButton

5.ImageView

6.ProgressBar

7.Notification(在应用外,手机通知栏处的通知)

8.Toolbar最上面的操作栏

9.AlertDialog

10.popupWindow(弹出窗口)

11.ListView


1.TextView

(1)id 控件的名字 
(2)text:显示的文本内容
(3)textColor:#000000,前两位表示透明度,FF表示不透明,后面6位,每2位显示一个,分别是红绿蓝
(4)textSize:sp,和屏幕大小相适配

(5)textStyle:字体的样式,如blod(粗体),italic(斜体),bolditalic(粗斜体)
(6)background:控件的背景颜色,可以是图片

(7)gravity :设置文本位置,可选top,bottom,left,right,center,可以用'|'来同时指定多个值,center等同于center_vertical|center_horizontal.

(8)wrap_content :当前控件的大小刚好包含住里面的内容,但是不能超过容器的大小
(9)match_parent:当前控件的大小和父布局的一样,match_parent和fill_parent意义相同,fill_patent已经弃用,,设定数值200dp:明确设定大小

(10)maxLength:设置文本长度,超出不显示

(11)password:设置文本以密码形式”.“显示

(12)pgoneNumber:设置以电话号码的方式输入

2.Button

(1)Button继承TextView

(2)textAllCaps:系统默认对英文字母大写,所以这里设为false
(3)background:给Button的按钮设置背景颜色的时候没有效果,需要将themes.xml文件中的parent="Theme.MaterialComponents.DayNight.DarkActionBar.Bridge">

StateListDrawable:是Drawable资源的一种,可以根据不同的状态设置不同的图片效果,关键节点<selector>,我们只需要将Button的background属性设置为该drawable资源的xml文件,即可实现。新建drawable中的xml文件时,new对应的source file,可以看到Root_element是selector,然后命名添加即可。然后在文件中设置被点击时和没被点击时的颜色或者背景,这里是图片背景。

<item android:drawable="@drawable/ic_baseline_add_alert_24" android:state_pressed="true"/><item android:drawable="@drawable/ic_baseline_add_box_24" />

(4)backgroundTint:要设置变换的点击颜色和上面的一样,只不过先要新建一个color的文件夹,然后新建对应的color source file,然后指定点击时的颜色和默认没有被点击时的颜色。
(5)匿名内部类的方法实现点击事件

//匿名内部类的方法//点击事件myBtn_one.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {}});//长按事件myBtn_one.setOnLongClickListener(new View.OnLongClickListener(){@Overridepublic boolean onLongClick(View v) {return false;}});//触摸事件myBtn_one.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {return false;}});

优先级:触摸事件>长按事件>点击事件,当触摸事件return true时,长按事件和点击事件就不会被执行,当长按事件return true时,点击事件不会被执行,但是,触摸事件会被执行。

(6)实现onClick方法

需要在Button的布局文件中指定

anddroid:onClick="click"

然后在java的代码中

//点击事件public void clck(View v){
}

这个方法名要和onClick中指定的名字相同

(7)继承接口(implements View.OnClickListener),实现多个按钮的点击事件

llChat = findViewById(R.id.id_tab_weixin);llChat.setOnClickListener(this);
public void onClck(View v){switch(v.getId()){case R.id.btn_one:break;case R.id.btn_two:break;}}

3.EditText

(1)EditText:继承TextView

(2)id:

(3)hint:输入提示
(2)textColorHint:输入提示文字的颜色
(3)inputType:输入类型,指定为phone时,只能输入数字,textPassword,就会是密码格式的那种星号
(4)drawableXxxx(Left):在输入框的指定位置添加图片
(5)drawablePadding:设置图片与输入内容的间距
(6)padding(Xxxx(right)):设置内容与边框的间距
(7)background:背景色,设置为white时,就不会有下面的横线了。
(8)lines:设置固定行数来决定EditText的高度
(9)maxLines:最大行数,minLines:最小行数
(10) scrollHorizontal:超过TextView的宽度的情况下,是否出现横幅条
(11) capitalize:设置首字母大写
(12) editable:是否可编辑

(13)方法

在点击显示的按钮中的Onclick方法中,写
String text=et.getText().toString();    //获取文本输入的内容

4.RadioButton

(1)RadioButton为单选按钮,他需要与RadioGroup配合使用,提供2个或者多个互斥的选项集。RadioGroup是单选组合框,可容纳多个RadioButton

(2)RadioButton有个特有属性checked,设置为true,按钮会默认选中

//为RadioGroup建立监听radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {//判断点击的是哪个RadioButtonif(checkedId==R.id.btn_one){}else{}}});

5.ImageView

(1)视图控件,继承自View,其功能是在屏幕中显示图像。
(2)background:是背景,会根据ImageView控件大小进行伸缩
(3)src:是前景,以原图大小显示
(4)maxHeight:最大高度
(5)maxWidth:最大宽度

(6)adjustViewBounds:调整View的界限,为true时,会自动调整图片不超过最大宽高 
(7)scaleType:设置图片缩放类型,

<1>fitStart:保持宽高比缩放图片,直到较长的边与lmage的边长相等,缩放完成后将图片放在ImageView的左上角
<2>fitCenter 默认值,同上,缩放后放于中间
<3>filEnd 同上,缩放后放于右下角
<4>fitXY对图像的橫纵方向进行独立缩放,使得该图片完全适应lmageView, 但是图片的宽高比可能会发生改变
<5>center 保持原图的大小,显示在ImageView的中心。 当原图的size大于ImageView的size, 超过部分裁剪处理。
<6>centerCrop 保持宽高比缩放图片,直到完全覆盖ImageView, 可能会出现图片的显示不完全
<7>centerlnside 保持宽高比缩放图片,直到lmageView能够完全地显示图片
<8>matrix不改变原图的大小,从ImageView的左上角开始绘制原图, 原图超过ImageView的部分作裁剪处理

.(8)在方法中更换图片

imageView.setImageResource(R.drawable.img);

6.ProgressBar

(1)max:进度条的最大值
(2)progress:进度条已完成进度值
(3)indeteminate:设置为true,则进度条不精确显示进度
(4)style="?android:attr/progressBarStyleHorizontal"水平进度条
        最初始的进度条是转圈的,水平进度条是水平加载显示的
(5)设置进度条的状态,visiable可见,invisiabe不可见,仍占据位置,gone不可见,不占据位置
可以设置当点击按钮之后,判断它是否要转换显示和隐藏

if(progressBar.getVisibility()==View.GONE){progressBar.setVisibility(View.VISIBLE);}else{progressBar.setVisibility(View.GONE);}

(6)增加水平进度条的进度

int progress=progressBar.getProgress(); //获取当前进度条的值progress+=10;progressBar.setProgress(progress);//进度条的值修改后,再返回赋值

7.Notification(在应用外,手机通知栏处的通知)

(1)创建一个通知管理器类(NotificationManager),这个对象是由系统维护的服务,是以单例模式的方式获得,所以一般并不直接实例化这个对象。在Activity中,可以使用getSystemService(NOTIFICATION_ _SERVICE)方法获取。
(2)使用Builder构造器来创建Notification对象
使用NotificationCompat类的Builder构造器来创建Notification对象,可以保证程序在所有的版本.上都能正常工作。Android8.0新增 了通知渠道这个概念,如果没有设置,则通知无法在Android8.0的机器上显示
(3)NotificationChannel(通知渠道)
通知重要程度设置,NotificationManager类中,在Channel的最后一个属性中添加
<1>IMPORTANCE_ NONE关闭通知
<2>IMPORTANCE_ MIN开启通知,不会弹出,但没有提示音,状态栏中无显示
<3>IMPORTANCE_ LoW开启通知,不会弹出,不发出提示音,状态栏中显示
<4>IMPORTANCE_ DEFAULT 开启通知,不会弹出,发出提示音,状态栏中显示
<5>IMPORTANCE_ HIGH 开启通知,会弹出,发出提示音,状态栏中显示
(4)Notification的属性设置
<1> setContentTitle(String string)设置标题
<2>setContentText(String string)设置文本内容
<3>setSmallcon(int icon)设置小图标
Android5.0以后谷歌要求应用程序的图标只能使用appha图层,不能使用RGB图层,也就是不能使用包含颜色的图标
<4>setLargelcon(Bitmap icon)设置通知的大图标
<5>setColor(int argb)设置小图标的颜色
<6>setContentIntent(PendingIntent intent)设置点击通知后的跳转意图
<7>setAutoCancel(boolean boolean)设置点击通知后自动清除通知
<8>setWhen(long when)设置通知被创建的时间

//获取通知管理器类NotificationManager manager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE);//判断版本大于Android8.0,新建一个NotificationChannel,放入managerif(Build.VERSION.SDK_INT>=Build.VERSION_CODES.O){NotificationChannel channel=new NotificationChannel("duiyig","测试通知",NotificationManager.IMPORTANCE_HIGH);manager.createNotificationChannel(channel);}Intent intent=new Intent(this,Activity1.class);PendingIntent pendingIntent=PendingIntent.getActivity(this,0,intent,0);//创建Notification对象Notification notification=new NotificationCompat.Builder(this,"duiying").setContentTitle("标题").setContentText("内容").setSmallIcon(R.drawable.btn_selectcolor).setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.ic_baseline_add_alert_24)).setColor(Color.parseColor("#ff000000")).setContentIntent(pendingIntent).setAutoCancel(true).build();//对应2个按钮的Onclick中设置的方法名//发送通知public void sendNotification(View view){manager.notify(1,notification);}//取消通知public void cancelNotification(View view){manager.cancel(1);}

8.Toolbar最上面的操作栏

(1)把默认的DarkActionBar改为NoActionBar,上面的操作栏就没有了
(2)navigationIcon(导航图标)
xml文件

<androidx.appcompat.widget.Toolbarandroid:id="@+id/tb"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="#ffff00"app:navigationIcon="@drawable/ic_baseline_add_box_24"app:title="主标题"app:titleTextColor="#ff0000"app:titleMarginStart="90dp"app:subtitle="子标题"app:subtitleTextColor="#00ffff"app:logo="@mipmap/ic_launcher"/>

activity中

Toolbar toolbar=findViewById(R.id.tb);toolbar.setNavigationIcon(R.drawable.btn_selectcolor);toolbar.setTitle("标题");toolbar.setNavigationOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {}});

(3)嵌套居中

androidx.appcompat.widget.Toolbarandroid:id="@+id/tb"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="#ffff00"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="标题"android:layout_gravity="center"/></androidx.appcompat.widget.Toolbar>

9.AlertDialog

(1)普通对话框

//获取一个xml文件的viewView dialogView=getLayoutInflater().inflate(R.layout.dialog_view,null);AlertDialog.Builder builder=new AlertDialog.Builder(this);builder.setIcon(R.mipmap.ic_launcher).setTitle("标题").setMessage("提示信息").setView(dialogView)    //设置自定义布局.setPositiveButton("确定按钮", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).setNegativeButton("取消按钮", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).setNeutralButton("中间按钮", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}}).create().show();

(2)单选对话框

设置单选框的选项时,就不能添加选项框的提示信息。

 //第二个参数,是设置默认的选中选项,默认为-1就是不选.setSingleChoiceItems(new String[]{"选项1", "选项2"}, 0, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {//which的数值就是我们选中数组中的下标}})

(3)多选对话框

.setMultiChoiceItems(new String[]{"选项1", "选项2", "选项3"}, che, new DialogInterface.OnMultiChoiceClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which, boolean isChecked) {che[which]=isChecked;   //which是数组的某个下标,ischecked,是指选中true或者取消选中false,点一个触发更新一次}})

(4)进度条对话框

//声明构建对话框ProgressDialog prodialog=new ProgressDialog(this);prodialog.setTitle("jindu");//设置水平进度条prodialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//设置进度条的最大值prodialog.setMax(20);//为进度条增加进度值prodialog.incrementProgressBy(5);prodialog.show();//设置进度值,但是要在show方法之后prodialog.setProgress(11);

(5)消息对话框(Toast)

Toast对话框显示在应用程序界面得最上层,显示一段时间后就会自动消失。

Toast.LENGTH_SHORT和Toast.LENGTH_LONG,显示时间短和长

//创建Toast
Toast.makeText(this,"显示内容",Toast.LENGTH_LONG).show();

10.popupWindow(弹出窗口)

(1)属性方法
<1> setContentView(View contentView):设置PopupWindow显示的View
<2> showAsDropDown(View anchor):相对某个控件的位置(正左下方),无偏移
<3> showAsDropDown(View anchor, int xoff, int yof):相对某个控件的位置,有偏移
<4>  setFocusable(boolean focusable)设置是否获取焦点
<5> setBackgroundDrawable(Drawable background)设置背景
<6> dismiss() 关闭弹窗
<7> setAnimationStyle(int animationStyle)设置加载动画
<8> setTouchable(boolean touchable)设置触摸使能
<9> setOutsideTouchable(boolean touchable)设置PopupWindow外面的触摸使能

public void Onclick(View view) {//获取布局的视图View popupView=getLayoutInflater().inflate(R.layout.activity_main,null);Button bnt1=popupView.findViewById(R.id.btn);//构造PopupWindow,参数:背景View,宽度,高度(下面的相当于wrap_content),true为获取焦点,点击空白处,会退出PopupWindow popupWindow = new PopupWindow(popupView, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);popupWindow.setBackgroundDrawable(getResources().getDrawable(R.drawable.ic_launcher_background));   //背景图片popupWindow.showAsDropDown(view);   //显示btn1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {popupWindow.dismiss();}});}

11.ListView

ListView是一个列表视图,由很多ltem(条目)组成,每个ltem的布局都是相同的,这个Item布局会单独使用一个XML进行定义。ListView 指定了id 属性之后,才会看到界面。如果ListView没有进行数据适配,那么程序运行后界面空白,无数据显示。

在使用ListView展示数据时需要创建对应的Item条目展示每条数据。如果展示的数据有成千上万条,那么就需要创建成千上万个Item, 这样会大大增加内存的消耗,甚至会由于内存溢出导致程序崩溃。为了防止这种情况的出现,就需要对ListView进行优化。ListView优化有两种方式,一种是复用convertView,一种是使用ViewHolder类,接下来针对这两种方式进行详细讲解。
(1)复用convertView
在ListView第一次展示时,系统会根据屏幕的高度和ltem 的高度创建一定数量的convertView。当滑动ListView时,顶部的Item会滑出屏幕,同时释放它所使用的convertView,底部新的数据会进入屏幕进行展示,这时新的数据会使用顶部滑出Item的convertView,从而使整个ListView展示数据的过程使用固定数量的convertView,避免了每次创建新的ltem而消耗大量内存。
(2)使用ViewHolder类
在加载Item布局时,会使用findViewByld()方法找到ltem布局中的各个控件,在每一次加载新的ltem数据时都会进行控件寻找,这样也会产生耗时操作。为了进一步优化ListView减少耗时操作,可以将要加载的子View放在ViewHolder类中,当第一次创建convertView时将这些控件找出,在第二次重用convertView时就可直接通过convertView中的getTag()方法获得这些控件。

需要注意的是,LayoutInflater.from()方 法需要传入一个Context对象作为参数,在Adapter中获取Context对象需要使用getApplicationContext()方法。

Android-2-控件使用相关推荐

  1. Android开源控件ViewPager Indicator的使用方法

     1月16日厦门 OSC 源创会火热报名中,奖品多多哦   摘要 Android开源控件ViewPager Indicator的使用介绍 ViewPagerIndicator 目录[-] 1. V ...

  2. 日历控件的android代码,Android日历控件PickTime代码实例

    Android日历控件PickTime代码实例 发布时间:2020-10-03 16:05:51 来源:脚本之家 阅读:86 作者:手撕高达的村长 最近做项目,需要设置用户的生日,所以做这样一个功能. ...

  3. android 获取控件高度_安卓开发入门教程UI控件_ImageView

    什么是ImageView ImageView是用于显示图片的UI控件. 基础样例 1.展示本地图片 效果图 代码 <ImageViewandroid:layout_width="wra ...

  4. xamarin.android 控件,Android 库控件 - Xamarin | Microsoft Docs

    Xamarin Android 库控件Xamarin.Android Gallery control 03/15/2018 本文内容 Gallery是一种布局小组件,用于显示水平滚动列表中的项,并将当 ...

  5. android 获取控件在屏幕中的坐标

    今天,简单讲讲android如何获取控件在屏幕中的坐标. 这个其实也很简单,但是昨天做一个功能时,需要功能控件的坐标做一些逻辑操作时,居然不知道怎么做.所以在网上查找了资料后,解决了这个问题.这里记录 ...

  6. Android图表控件MPAndroidChart——曲线图LineChart的使用(财富收益图)

    目录 前言 本文涉及文章 其他相关文章 1.数据准备 1.1 数据来源 2.曲线展示 2.1 MPAndroidChart获取 2.2 数据对象获取 2.3 数据展示 3.曲线完善 3.1 图表背景. ...

  7. Android AutoCompleteTextView控件实现类似百度搜索提示,限制输入数字长度

    Android AutoCompleteTextView 控件实现类似被搜索提示,效果如下 1.首先贴出布局代码 activity_main.xml: <?xml version="1 ...

  8. android控件使用大全,Android常见控件使用详解

    本文实例为大家分享了六种Android常见控件的使用方法,供大家参考,具体内容如下 1.TextView 主要用于界面上显示一段文本信息 2.Button 用于和用户交互的一个按钮控件 //为Butt ...

  9. android组件用法说明,Android第三方控件PhotoView使用方法详解

    Android第三方控件PhotoView使用方法详解 发布时间:2020-10-21 15:06:09 来源:脚本之家 阅读:74 作者:zhaihaohao1 PhotoView的简介: 这是一个 ...

  10. 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab

    [索引页] [×××] 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spi ...

最新文章

  1. springboot 读取配置文件内容的几种方式
  2. 垂垂老矣,一代人的回忆,Adobe Flash 寿命将尽
  3. Client使用c#和odp.net连接server oracle
  4. Spring Boot 2发送邮件手把手图文教程
  5. javase(Properties集合及学生对象信息录入文本中案例)
  6. ios html5 不支持 flv_iExplorer v4.2.6 一款优秀强大的 iOS 资源管理工具
  7. Oracle RMAN 学习
  8. 2018年高教社杯全国大学生数学建模竞赛A题解题思路
  9. GD32F103实战
  10. html实现2048小游戏,html+css+js适合前端小白的实战全解(超详细)——2048小游戏(二)...
  11. sketch 导出html,用 Sketch 设计和输出响应式网页
  12. 随手笔记之逆序输出数字
  13. 2038:最大数位置(题目来源于信息奥赛一本通官网)
  14. NOI Online 2020 Round1 准备计划
  15. 雷电模拟器python编程接口_【Python】雷电模拟器说明[附代码]
  16. Git与bitbucket简单使用
  17. 【免费分享】[艾略特波浪理论-20周年纪念版]
  18. springboot毕设项目二手书交易平台95q22(java+VUE+Mybatis+Maven+Mysql)
  19. 如何做好团队目标管理?附实操方法与工具,强烈推荐
  20. js判断isNumber(obj)

热门文章

  1. [css文字单行省略与多行省略]
  2. 微信好友排行榜 最简教程 二
  3. 存储单元、存储字、字、字节
  4. C语言实验:输入任意一个日期的年、月、日的值,求出从公元1年1月1日到这一天总共有多少天,并求出这一天是星期几。
  5. C++两个函数可以相互递归吗_设计递归函数竟然这么简单!
  6. 51单片机--外部中断
  7. 《路由器开发 - 路由器刷机指南》华硕路由器RT-N66W刷机
  8. 9款最好用的Bilibili影片下载线上工具推荐
  9. 职高计算机应用基础教学目标,职高计算机应用基础教法初探.doc
  10. 小语种语音情感语料库的建立——论文阅读1