Android基本控件及高级控件的应用
安卓的四大组件

安卓的四⼤组件Android四⼤基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver⼴播接收器。
⼀:了解四⼤基本组件Activity :应⽤程序中,⼀个Activity通常就是⼀个单独的屏幕,它上⾯可以显⽰⼀些控件也可以监听并处理⽤户的事件做出响应。
Activity之间通过Intent进⾏通信。
在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。
典型的动作类型有:M AIN(activity的门户)、VIEW、PICK、EDIT 等。
⽽动作对应的数据则以URI 的形式进⾏表⽰。
例如:要查看⼀个⼈的联系⽅式,你需要创建⼀个动作类型为VIEW 的intent,以及⼀个表⽰这个⼈的URI。
与之有关系的⼀个类叫IntentFilter。
相对于intent 是⼀个有效的做某事的请求,⼀个intentfilter 则⽤于描述⼀个activity(或者IntentReceiver)能够操作哪些intent。
⼀个activity 如果要显⽰⼀个⼈的联系⽅式时,需要声明⼀个IntentFilter,这个IntentFilter 要知道怎么去处理VIEW 动作和表⽰⼀个⼈的URI。
IntentFilter 需要在AndroidManifest.xml 中定义。
通过解析各种intent,从⼀个屏幕导航到另⼀个屏幕是很简单的。
当向前导航时,activity 将会调⽤startActivity(Intent myIntent)⽅法。
然后,系统会在所有安装的应⽤程序中定义的IntentFilter 中查找,找到最匹配myIntent 的Intent 对应的activity。
新的activity 接收到myIntent 的通知后,开始运⾏。
当startActivity ⽅法被调⽤将触发解析myIntent 的动作,这个机制提供了两个关键好处:A、Activities 能够重复利⽤从其它组件中以Intent 的形式产⽣的⼀个请求;B、Activities 可以在任何时候被⼀个具有相同IntentFilter 的新的Activity 取代。
第2章 Android基础界面设计-控件

2021/10/19
第2章 Android基础界面设计
19
Button点击事件的处理方式
在XML文件中附加事件处理方法, 在Activity类实现这个事件处理方
即设置onClick属性:
法:
android:onClick="showToast"
public void showToast(View view) { String msg = "Hello Toast!"; Toast.makeText(this, msg, duration)
2021/10/19
ቤተ መጻሕፍቲ ባይዱ功能描述
输入类型设置 textPassword:输入文本框中的内容显示为"." phone:设置输入文本框中的内容只能是数字 设置允许输入哪些字符
设置编辑框内容为空时,显示的提示信息
控件中内容为空时显示的提示文本信息的颜色
设置控件的宽度为N个字符的宽度 监控软键盘的事件,如actionNext表示点击软键盘上的下一项会跳到 该组件 设置文本的最小行数
2021/10/19
功能描述
设置文本内容的位置,可以用"|"指定多个值 设置文本最大长度,超出此长度的文本不显示 设置文本的字符个数 设置文本的行数,超出此行数的文本不显示 设置文本的最大行数,超出此行数的文本不显示。 设置当文本超出TextView规定的范围的显示方式。 在文本的顶部显示图像 设置文本的行间距 设置文本样式,如:bold(粗体)、italic(斜体)、normal(正 常)
2021/10/19
第2章 Android基础界面设计
4
2.3 Android基本控件
https:///guide/topics/ui/look-and-feel/autosizing-textview https:///guide/topics/ui/controls/button
Android基本控件之RadioGroup

Android基本控件之RadioGroup我们在⼿机上经常看到⼀堆选项,但是我们只能选择⼀个,那么在Android中,这个控件就叫做RadioButton,也就是单选按钮的意思,他们之所以能够达到只能选择⼀个的效果,是因为有⼀个RadioGroup这样⼀个组件。
这次,我们就来详细的解说⼀下RadioButton和RadioGroup这两个控件的关系和区别,以及如何去使它们默契的搭配在⼀起~要实现RadioButton由两部分组成,也就是RadioButton和RadioGroup配合使⽤,其中RdioGroup是单选组合框,可以容纳多个RadioButton 的⼀个容器。
在没有RadioGroup的情况下,RadioButton可以全部被选中;当多个RadioButton被RadioGroup包含的情况下,RadioButton 只可以选择⼀个,从⽽达到了单选的⽬的。
并⽤setOnCheckChangeLinstener()来对单选按钮进⾏监听。
RadioGroup的相关属性: 1.RadioGroup.getCheckedRadioButtonId(); 该⽅法可以获取选中的按钮 2.RadioGroup.clearCheck(); 该⽅法可以清除选中状态 3.setOnCheckedChangeLintener(RadioGroup.OnCheckedChangeListener listener); 当⼀个单选按钮组中的单选按钮选中状态发⽣改变的时候调⽤的回调⽅法 4.RadioGroup.check(int id); 该⽅法可以通过传⼊ID来设置该选项为选中状态 5.addView(View child,int index, youtParams params); 使⽤指定布局参数添加⼀个字视图(其中child是要添加的⼦视图,index是将要添加⼦视图的位置,params 所要添加的⼦视图的布局参数) 6.RadioButton.getText(); 获取单选框的值 此外,RadioButton的checked属性设置为true,代码⾥调⽤RadioButton的check(id)⽅法,不会触发onCheckedChanged事件然后,我们来看⼀下RadioButton和RadioGroup的关系: 1.RadioButton表⽰单个原型单选框,⽽RadioGroup是可以容纳多个RadioButton的容器 2.每个RadioGroup中的RadioButton同时只能有⼀个被选中 3.不同的RadioGroup中的RadioButton互不相⼲,即如果组A中有⼀个选中了,那么组B中依然可以有⼀个被选中。
viewpager控件的基本用法

viewpager控件的基本用法ViewPager是Android中常用的一个控件,它提供了滑动切换页面的功能。
ViewPager常用于构建多个页面切换的导航界面或图片轮播等。
基本用法:1. 引入ViewPager控件:在布局文件中添加ViewPager控件。
2. 设置适配器:创建适配器类,继承自PagerAdapter,并重写相应的方法。
3. 添加页面:在适配器中添加页面,重写instantiateItem()方法,在该方法中通过LayoutInflater实例化布局文件,并返回该布局。
4. 设置数据源:在Activity或Fragment中设置ViewPager的数据源(即要显示的页面列表)。
5. 设置适配器:将适配器设置给ViewPager。
6. 设置页面切换动画:可根据需求设置页面切换的动画,如淡入淡出效果等。
7. 监听页面切换事件:可以设置监听器,监听页面的切换事件,根据事件做出相应的处理。
具体实现步骤如下:1. 在布局文件中添加ViewPager控件:xml<android.support.v4.view.ViewPagerandroid:id="@+id/viewPager"android:layout_width="match_parent"android:layout_height="match_parent" />2. 创建适配器类:javapublic class MyPagerAdapter extends PagerAdapter {private List<View> mViews;public MyPagerAdapter(List<View> views) {this.mViews = views;}@Overridepublic int getCount() {return mViews.size();}@Overridepublic boolean isViewFromObject(@NonNull View view, @NonNull Object object) {return view == object;}@NonNull@Overridepublic Object instantiateItem(@NonNull ViewGroup container, int position) {View view = mViews.get(position);container.addView(view);return view;}@Overridepublic void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {container.removeView(mViews.get(position));}}3. 添加页面:javaList<View> views = new ArrayList<>();View view1 = LayoutInflater.from(this).inflate(yout_page1, null);View view2 = LayoutInflater.from(this).inflate(yout_page2, null);views.add(view1);views.add(view2);4. 设置数据源:javaViewPager viewPager = findViewById(R.id.viewPager); MyPagerAdapter adapter = new MyPagerAdapter(views); viewPager.setAdapter(adapter);5. 设置页面切换动画:javaviewPager.setPageTransformer(true, new DepthPageTransformer()); 设置深入浅出的动画效果,可根据需求选择其他动画效果6. 监听页面切换事件:javaviewPager.addOnPageChangeListener(newViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {页面滑动过程中的回调}@Overridepublic void onPageSelected(int position) {页面切换完成时的回调}@Overridepublic void onPageScrollStateChanged(int state) {页面滑动状态改变时的回调}});以上就是ViewPager控件的基本用法。
第03章Android高级界面控件

按下中间按钮时的效果
单击下面按钮的效果
图片按钮ImageButton
实现随状态变化的图片效果有多种方法:一种是在Android中定 义一个特殊的XML文件,该文件的根元素为”selector”,证将在第 6章详细讲解;另一种是给按钮添加触摸事件处理,监听用户的触摸和 松开操作。
ImageView控件中,缩放完成后图片将显示在正中央。 fitXY:对图片横向、纵向独立缩放,使得该图片完全适应于该
ImageView,图片的纵横比可能不一样,图片可能发生变形。 centerCrop:保持纵横比缩放图片,使得图片能完全覆盖
ImageView控件区域。
图片按钮ImageButton
根据状态动态改变按钮显示的图片,程序运行效果如下图所示,初始 时按钮显示的图片为蓝色的机器人,当按钮按下时,显示的图片为绿色的 机器人,松开按钮后,图片又恢复为蓝色的机器人。图中第二、第三个按 钮使用不同的方式实现同一功能。
初始效果Biblioteka break;} return true;
用户松开操作
}
图片按钮ImageButton
如何去除按钮默认的灰色背景?
尝试将其背景改为白色;(治标不治本,即将按钮的颜色设 置为与系统的背景色相同的) 尝试设置按钮的alpha属性;(不起作用) 设置按钮的背景颜色,将其背景颜色设置为透明。(推荐)
4 <item android:state_pressed="false" android:drawable="@drawable/blue"/>
5 </selector>
松开时为蓝色机器人
图片按钮ImageButton
Android教学大纲

Android教学大纲一、Android学习进度规划:第1周:【UI基础】•第1天:•第2天:•第3天:常用UI控件及事件处理•第4天:•第5天:Activity生命周期【知识点】1.常用UI布局及主要控件•LinearLayout、RelativeLayout常用属性【重点讲解】•FrameLayout、GridLayout常用属性•TextView、Button、ImageView、Toast的基本用法3.表单三大UI控件及相应控件的事件处理及部分特殊drawable资源(selector、shape)•RadioButton及RadioGroup的用法:【重点】单选、监听事件、利用selector实现选中与否、改变默认单选button的显示效果、修改topDrawable•CheckBox的多选效果及监听。
利用selector及shape修改多选框的显示效果•Spinner的用法•ArrayAdapter适配器的基本用法•数组资源String Array•ProgressBar、SeekBar、RatingBar的基本用法及美化5.Activity生命周期第2周:•第6天: Activity管理及Intent七大属性•第7天: AsyncTask异步任务•第8天: ListView基本用法•第9天: ListView分页及优化•第10天:图文混排+GridView【知识点】1.Activity页面跳转、生命周期及Intent七大属性2.AsyncTask异步任务3.ListView基本用法及适配器4.ListView分页及优化 + item多种布局的ListView5.GridView图文混排第3周:•第11天: Menu+Dialog+Toast•第12天: Fragment•第13天: SharedPreferences、SDCard及网络存储 + HttpURLConnection 实现文件上传•第14天: SQLite数据库 + WebView•第15天: ContentProvider之ContentResolver【知识点】1.Menu(选项菜单、上下文菜单、PopupWindow自定义菜单)+Dialog+Toast2.Fragment基本用法、生命周期、Fragment间传值3.SharedPreferences、内部文件存储及外部文件存储SDCard4.SQLite数据库 + WebView5.ContentProvider之ContentResolver第4周:•第16天:自定义ContentProvider•第17天: Loader异步装载•第18天: Handler与多线程•第19天: ActionBar + LruCache + Bitmap二次采样•第20天: ViewPager【知识点】1.自定义ContentProvider2.Loader异步装载器(CursorLoader及AsyncTaskLoader)3.Handler与多线程及源码分析4.ActionBar + 图片缓存(图片三层缓存策略、LruCache、Bitmap二次采样生成缩略图)5.ViewPager(制作欢迎引导页及加载网络图片的ViewPager及自动播放的ViewPager)第5周:•第21天: TAB书签导航•第22天: BroadcastReceiver + Notification•第23天: Service1•第24天: Service2【知识点】1.TAB书签导航制作•FragmentTabHost制作TAB书签导航•Fragment + RadioGroup制作TAB书签导航•Fragment + ViewPager + RadioGroup制作TAB书签导航•Fragment + 带滑动导航条的ViewPager 制作TAB书签导航•Fragment + ViewPager + HorizontalScrollView自定义滑动导航条•Fragment + ActionBar制作TAB书签导航•Fragment + ActionBar + ViewPager制作TAB书签导航2.BroadcastReceiver + 自定义广播 + Notification3.Service(一)(服务的概念及分类、被启动服务和被绑定服务实现音乐播放的用法)4.Service(三)(远程服务:AIDL及Messenger)第6周:•第26天:百度地图 2•第27天:动画资源 + 样式、主题及drawable资源•第28天:屏幕适配•第29天:自定义View(上)•第30天:自定义View(下)【知识点】1.百度地图基本用法2.动画资源(帧动画、补间动画、属性动画基本用法)3.屏幕适配及UI美化(样式、主题及特殊的drawable资源:selector、shape、level-list、layer-list等)4.(继承于EditText、ListView)5.自定义View(继承于View、)第8周:•第36天: Volley框架•第37天: UIL框架•第38天: xUtils框架•第39天:SlidingMenu及DrawerLayout + PullToRefresh等其他第三方技术•第40天:事件分发及消费机制【知识点】1.Volley框架2.UIL(Universal-Image-Loader)框架3.(ViewUtils \ HttpUtils \ BitmapUtils \ DBUtils)4.PullToRefresh(下拉刷新)+ 瀑布流及常用第三方菜单技术:SlidingMenu(侧滑菜单)、DrawerLayout (抽屉)、ResideMenu(驻留菜单)、SatelliteMenu(卫星菜单)5.事件分发及消费机制(TouchEvent)第9周:•第41天:Gesture手势及 SurfaceView•第42天:播放器及摄像头•第43天: RecyclerView、CardView•第44天:传感器、WiFi及蓝牙通讯•第45天:ShareSDK一键分享及第三方登录 + 第三方支付 + JPush推送【知识点】1.Gesture手势 + SurfaceView2.播放器及摄像头(音乐播放、视频播放VideoView、摄像头)3.RecyclerView、CardView4.WiFi及蓝牙通讯、ShareSDK一键分享及第三方登录 + Alipay第三方支付 +JPush推送二、常用框架技术1.网络访问框架•Retrofit(网络访问)•AsyncHttpClient(【了解】)•Volley框架(StringRequest、JsonObjectRequest、JsonArrayRequest、ImageRequest、NetworkImageView)2.反转注入框架•ButterKnife•xUtils框架(ViewUtils \ HttpUtils \ BitmapUtils \ DBUtils)3.图片异步加载框架•Picasso•Fresco•UIL(Universal-Image-Loader)框架4.数据库ORM•GreenDao•ActiveAndroid三、考核内容必选:1.ListView、GridView、ScrollView、WebView2.assets及各种资源(selector、raw、string、color、dimens、style、array,必须采用软编码编程风格)3.动画资源(帧动画、补间动画)4.上下文菜单、PopupWindow、Dialog5.数据存储:SharedPreferences、内部文件存储、SD卡存储、SQLite数据库操作6.ContentResolver7.CursorLoader异步装载8.Handler与多线程或AsyncTask9.图片缓存10.屏幕自适应、版本自适应11.自定义View(至少三个)12.TAB导航(ViewPager、Fragment)13.广播、服务、通知14.DrawerLayout、SlidingMenu或其他第三方菜单15.PullToRefresh项目阶段必选:16.TouchEvent及手势17.Volley、xUtils、UIL框架或其他类似网络访问及异步加载图片的框架18.瀑布流19.混淆打包可选:1.SurfaceView2.音乐播放器或视频播放(自定义MediaController)3.RecyclerView、CardView4.传感器5.ShareSDK一键分享及第三方登录6.JPush或其他推送技术7.Alipay或其他支付技术8.WiFi或蓝牙通讯9.文件加密及解密10.地图。
Android系统常用布局介绍

Android系统常用布局介绍Android中的布局包括线性布局,表格布局,相对布局,帧布局,绝对布局。
下面分别对每个布局进行一个介绍。
在介绍android的布局管理器之前,有必要了解android平台下的控件类。
首先要了解的是View类,该类为所有可视化控件的基类,主要提供了控件绘制和事件处理的方法。
创建用户界面所使用的控件都继承自View,如TextView,Button,CheckBox等。
补充:另外一个需要了解的是ViewGroup类,它也是View类的子类,但是可以充当其他控件的容器。
ViewGroup的子控件既可以是普通的View,也可以是ViewGroup。
Android中的一些高级控件如Gally,GirdView等都继承自ViewGroup。
一:线性布局:LinearLayout类简介线性布局是最简单的布局之一,它提供了控件水平或者垂直排列的模型。
同时,使用此布局时可以通过设置控件的weight参数控制各个控件在容器中的相对大小。
LinearLayout布局的属性既可以在布局文件(XML)中设置,也可以通过成员方法进行设置。
案例:1.在布局管理器中实现布局:在eclipse中新建一个项目。
首先打开项目文件夹下res/values目录下的string.xml,写入一下内容:<?xml version=”1.0”encoding=”utf-8”?><resources><string name=”app_name”>LinearExample</string><string name=”button”>按钮</string><string name=”add”>添加</string></resources>说明:在string.xml中主要声明了程序中要用到的字符串资源,这样将所有字符串资源统一管理有助于提高程序的可读性及可维护性。
ANDROID:控件属性(很全)

控件属性:android属性Android功能强大,界面华丽,但是众多的布局属性就害苦了开发者,下面这篇文章结合了网上不少资料,第一类:属性值为true或falseandroid:layout_centerHrizontal 水平居中android:layout_centerVertical 垂直居中android:layout_centerInparent 相对于父元素完全居中android:layout_alignParentBottom 贴紧父元素的下边缘android:layout_alignParentLeft 贴紧父元素的左边缘android:layout_alignParentRight 贴紧父元素的右边缘android:layout_alignParentTop 贴紧父元素的上边缘android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物第二类:属性值必须为id的引用名“@id/id-name”android:layout_below 在某元素的下方android:layout_above 在某元素的的上方android:layout_toLeftOf 在某元素的左边android:layout_toRightOf 在某元素的右边android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐第三类:属性值为具体的像素值,如30dip,40pxandroid:layout_marginBottom 离某元素底边缘的距离android:layout_marginLeft 离某元素左边缘的距离android:layout_marginRight 离某元素右边缘的距离android:layout_marginTop 离某元素上边缘的距离EditText的android:hint 设置EditText为空时输入框内的提示信息。