为了账号安全,请及时绑定邮箱和手机立即绑定

Android攻城狮的第二门课(第1季)

难度入门
时长 5小时 0分
学习人数
综合评分9.43
320人评价 查看评价
9.8 内容实用
9.4 简洁易懂
9.1 逻辑清晰
  • DataPicker日历选择器 & TimePicker时间选择器 使用DataPicker以及TimePicker显示当前日期和时间。 通过手指点击,就可以选择日期或时间 如图,左边是日期选择器,一般用于备忘录或者日程安排的应用上,它占据整个屏幕,也就是整个视图界面。 右边是一个时间选择器(但混合了日历选择器),一般出现在闹钟应用上,并且是以对话框的形式存在。 在实际开发中,我们可以选择视图、也可以选择对话框的形式呈现。
    查看全部
    2 采集 收起 来源:应用场景介绍

    2018-03-22

  • 使用ViewStub惰性加载 作用:ViewStub标签同include标签一样可以用来引入一个外部布局,不同的是,ViewStub引入的布局默认不会扩张,既不会占用显示也不会占用位置,从而在解析layout时节省cpu和内存。 所以,可以人为地控制什么时候去加载ViewStub的内容。 ViewStub通常作为一种优化,只有触发某种事件的时候才会显示内容,才会去占用cpu和内存。 ---------------------- 这里我们通过使用按钮来实现ViewStub惰性加载。 1. 首先新建一个 common_text文件,只添加TextView控件。 2. 在 main.xml 文件中添加 Button 和 ViewStub,其中ViewStub添加属性android:layout="@layout/common_text",完成布局的添加。 3. 在 MainActiivity中创建和初始化Button和ViewStub。对Button添加监听器,监听点击事件。重写onclick()方法:在里面添加一句:viewStub.inflate();//令惰性加载ViewStub加载布局 ----------------- 不使用ViewStub也可以隐藏内容:比如说,TextView就有visibility属性,设置visibility="gone"就不会显示内容。可以设置个按钮监听器,当点击此按钮后,就修改visibility="visible"就能显示内容。 ---------------------- 摘自评论区: viewstub显示出来最好不要用inflate();最好用setVisibility(viewstub.VISIBLE)显示和用setVisibility(viewstub.GONE)隐藏,会少些麻烦。但是也有缺点,就是占用内存。
    查看全部
  • 使用SeekBar制作可拖动的进度条的步骤: 1. 在main.xml中添加标签 SeekBar 和两个 TextView用于显示状态。 2. 在MainActivity中创建并初始化SeekBsr和TextView. 3. 为了监听用户的手势,需要监听器,令 MainActivity 实现接口 OnSeekBarChangeListener,并重写3个方法: //数值改变的时候调用 @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean b) { textView1.setText("正在拖动"); textView2.setText("当前进度:"+progress); } //开始拖动的时候调用 @Override public void onStartTrackingTouch(SeekBar seekBar) { textView1.setText("开始拖动"); } //停止拖动的时候调用 @Override public void onStopTrackingTouch(SeekBar seekBar) { textView1.setText("停止拖动"); } 4. SeekBar加载监听器。
    查看全部
  • ScrollView 滚动视图 滚动视图是指当前拥有很多内容,屏幕显示不完整时,需要通过滚动来显示完整的视图。 ----------------------------- ScrollBar分两种: HorizontalScrollView: 水平滚动视图 ScrollView: 垂直滚动视图 ----------------------------- 隐藏滚动条有两种方式: 一种是在标签中设置: android:scrollbars="none" 另一种是在代码中设置: setHorizontalScrollBarEnable(false); 隐藏横向ScrollView setVerticalScrollBarEnable(false); 隐藏纵向ScrollView
    查看全部
  • 各文件之间的关联 MainActivity --> main.xml、MainActivity2 MainActivity2 --> main2.xml --> MyFragemt.java -->fragment.xml AndroidManifest --> MainActivity2
    查看全部
  • 这节课的思路是 1.现有的一个MainActivity(主界面),它的布局文件是Main.xml(含有RadioGroup,RadioButton),这里没有代码的讲解,可以先使用本课程的源码; 2.之后老师创建了一个MainActivity2(静态加载Fragment的界面),它对应的布局文件是Main2.xml(这个布局里添加了一个Fragment标签-->静态加载),并在这个xml文件中为Fragment标签定义了属性 name="MyFragment.Java的完整类名"; 3.MyFragment.java继承了Fragment,并重写onCreatView(),这个方法返回一个view对象。但在这之前需要为这个类创建一个布局文件fragment.xml,并在 fragment.xml 添加一个TextView和Button。MyFragment.Java通过inflate.infalte()将 fragment.xml添加进来并创建了View对象。-->回到MainActivity2通过setContextView()将main2.xml加载。 4.最后回到 MainActivity.java 为第一个RadioButton添加点击事件(通过intent意图,跳转到MainActivity2) 老师在MainActivity2中直接通过findViewById()将fragment.xml文件中的Button加载,这是因为通过层层加载,这个button已经在于main2.xml中了。 最后在清单文件中添加MainActivity2,并在main2.xml中为Fragment标签添加一个id或tag。
    查看全部
  • “ScrollView”动态定位(不使用手滑动) 使用两个方法。ScrollTo(int x,int y)和ScrollBy(int x,int y) 区别如下: * scrollTo表示将视图滑动到某一个地方。 * scrollBy 表示将视图想某个地方滑动多少 可通过源码看出区别: scrollBy源码: public void scrollBy(int x, int y) { scrollTo(mScrollX + x, mScrollY + y); }
    查看全部
  • 具体实现代码: public boolean onTouchEvent(MotionEvent event) { //该函数会在手指接触屏幕时调用 switch(event.getAction()) { case MotionEvent.ACTION_DOWN: //手指放到屏幕上 startX=event.getX(); break; case MotionEvent.ACTION_MOVE: //手指在屏幕上移动 break; case MotionEvent.ACTION_UP: //手指抬起离开屏幕 if(event.getX()-startX>100) { //表示手指向右滑动 viewFlipper.setInAnimation(this, R.anim.left_in); viewFlipper.setOutAnimation(this,R.anim.left_out); viewFlipper.showPrevious(); } if(startX-event.getX()>100) { //表示手指向左滑动 viewFlipper.setOutAnimation(this, R.anim.right_out); viewFlipper.setInAnimation(this, R.anim.right_in); //该变动画 viewFlipper.showNext();//显示一下张图片 } break; } return super.onTouchEvent(event); }
    查看全部
  • 给ViewPager加标题。 PagerTabPager和PagerTitlePager的用法 1.在ViewPager下增添“子标签” “android.support.v4.view.PagerTabStrip” 2.新建一个List<String>来存储标题文本。 3.将该文本传递到“自定义PagerAdapter”类下。 4.自定义PagerAdapter重写getPageTitle方法。返回当前位置标题即可 public CharSequence getPageTitle(int position) { return tabList.get(position); } 5.通过获取PagerTab对象来改变标题样式。 viewPager=(ViewPager) findViewById(R.id.viewPager); pagerTabStrip=(PagerTabStrip) findViewById(R.id.tab); pagerTabStrip.setAlpha(50);//设置透明度 pagerTabStrip.setBackgroundColor(Color.BLUE); pagerTabStrip.setTabIndicatorColor(Color.RED); //设置指示器(下面的横线)的颜色。 PagerTitleStrip和PagerTabStrip用法一样。区别如下: PagerTabStrip: 1.点击上面的标题可以实现ViewPager的切换。 2.选中的文字下方包含指引线 3.可是设置是否显示全宽下划线(setDrawFullUnderline) PagerTitleStrip: 1.点击上面的标题无反应。 2.无上述描述。
    查看全部
  • 使用ViewList作为PaperAdapter的数据源: viewList = new ArrayList<View>(); View view1 = View.inflate( context,resource ,root ); viewlist.add(view1); 初始化ViewPaper:findViewById(Id); 创建PaperAdapter的适配器:MyPagerAdapter adapter = new MyPaperAdapter(viewlist); ViewPager加载适配器:pager.setAdapter(adpter);
    查看全部
  • PaperAdapter: int getCount()://返回页卡的数量 boolean isViewFromObject(view arg0,arg1);//View是否来自于对象 Object instantiateItem(ViewGroup container, int position){ container.addView(viewlist.get (position)); }//实例化一个页卡 void destroyItemm(ViewGroup container,int position,Object){ container.removeView(viewlist.get(position)); }//销毁一个页卡 public PaperAdapter(List<View>viewlist);//构造时需要传递一个view的集合
    查看全部
  • ImageSwitcher介绍: ImageSwitcher和ImageView的功能有点类似,他们都可以适用于显示图片,区别在于ImageSwitcher的效果更炫,它可以指定图片切换时的动画效果。 ViewFactory的使用: ImageSwitcher粗略的理解就是ImageView的选择器,他需要设置ViewFactory.一般情况下,我们该让ViewFactory的makeView()方法返回ImageView private ImageSwitch is; is.(ImageSwitch)findViewById(R.id.is); is.setFactory(this); //设置动画 is.setInAnmation(AnimationUtils.loadAnimation(this,android.R.anmi.fade_in)); is.setOutAnmation(AnimationUtils.loadAnimation(this,android.R.anmi.fade_out));
    查看全部
  • ScrollView的监听器setOnTouchListener 第一步 在MainActivity中声明和初始化ScrollView 第二步 设置监听器setOnTouchListener 第三步 OnTouchListener中用switch语句套用getAction 第四步 switch语句里嵌套if语句判断滑动到顶部还是底部 第五步 tv.append();方法加载新的内容 getScrollY()————滚动条滑动的距离 getMeasuredHeight:需要滑动内容实际长度。 getHeight:整个页面的长度(高度)。 公式:活动到底部:getMeasuredHeight()<=getHeight()+scroll.getScrollY(); getMeasureedHeight和getHeight的区别 当视图未占满一个屏幕时,它们两者是相等的. 当视图超过一个屏幕时 getMeasureedHeight 包括隐藏的部分的长度和显示出来的长度 getHeight 仅仅是显示出来的长度.
    查看全部
  • 在manifest中自定义权限步骤 //步骤1,新建permission 标签(第一个应用) <permission Android;name="xxx" //自定义权限的名字 Android:protectionlevel="nomal"> 定义权限级别-》普通(nomal) </permission> 2,自定义权限的使用(第一个应用): <activity android:permission="xxx"> </activity> 3,在第二个应用添加 <uses-permission android:name="xxx"> //这样就可以访问第一个应用的内容,若不添加,则访问不到,程序会报错 自定义权限的目的:保护应用的某一组件(例如某一activity组件)不轻易被其他应用调用. 其他程序若要使用,可以用<uses-permission android:name-"自定义名字" >使用权限
    查看全部
    2 采集 收起 来源:自定义权限

    2018-03-22

  • Fragment向activity中传值 1.在Fragment中写一个回调接口 2.在activity中实现这个回调接口 3,在Fragment中onAttach 方法中得到activity中实现好的 实例化接口对象(父类指向子类的引用) 4,调用接口的对象函数,传递的Code是实参,也就把Code传到了Activity中
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Android开发课程进阶部分的第1季,将讲解各种高级控件的使用,对于不熟悉Android开发的童鞋来说会有一定的难度,所以,建议在学习本门课程之前: 1、熟练掌握Java基础语法和面向对象编程 2、熟悉Android开发环境 3、熟练使用Button、ImageView等基础控件
老师告诉你能学到什么?
1、Android高级控件的应用场景 2、Android高级控件的使用方法 3、熟悉Android常用高级控件

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!