为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
Android攻城狮的第二门课(第1季)_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

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

Smile浅笑 JAVA开发工程师
难度入门
时长 5小时 0分
  • 在这我想到了自己的app需要用到这种小图展示,大图预览的功能。
    查看全部
  • merge作用:合并UI布局,降低嵌套层次 被include进来的布局文件可以使用merge标签,这样被include进来的布局是叠加的。 <FrameLayout <include layout="@layout/common_progress" /> 这个common_progress就可以使用merge标签 <merge xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <ProgressBar /> <TextView /> </merge> 加上merge后这两个组件ProgressBar和TextView会叠加在一起
    查看全部
  • Android布局原则: (1)尽量使用LinearLayout和RelativeLayout,不要使用AbsoluteLayout (2)在布局层次一样的情况下,建议使用LinearLayout代替RelativeLayout,LinearLayout性能更高 (3)将可复用的组件抽取出来并通过include标签使用 (4)使用ViewStub标签来加载一些不常用的布局 (5)使用merge标签减少布局的嵌套层次 <include />的使用: 作用:将公用的组件抽取出来单独放到一个xml文件中,然后使用include标签导入共用布局; 效果:提高UI的制作和复用效率,也能保证制作的UI布局更加规整和易维护; 注意:findViewById也可以找得到include中xml的组件的。 关键代码:<include layout="@layout/common_title" />
    查看全部
  • Ps1:小技巧:快速添加到strings.xml方法:在text该行中Ctrl+数字1——选择Extract String即可。 Ps2:小技巧:init()//初始化,并不是一个官方提供的API函数,一般来说,程序员习惯自己写一个 init()函数作为自己写的类/activity/surfaceview的首次执行初始化的操作,比如:加载资源,给一些变量初始赋值...并不是都需要放在init中, 控件只要求在使用其之前实例化就好,你要用了再来实例化取出也不晚,只是习惯上把要用的控件都在onCreate中统一实例化,方便,易看,但是把代码放在onCreate中很难看的感觉, 所以再创一个函数init()之类的,把初始化代码都放里面,方便整改。
    查看全部
  • GridView的显示
    查看全部
    0 采集 收起 来源:GridView概述

    2016-03-11

  • 1、LinearLayout线性的、垂直的、水平的 2、RelativeLayout最灵活的 3、TableLayout使用GridView代替 4、AbsoluteLayout不常用 5、FrameLayout布局叠加时使用
    查看全部
    0 采集 收起 来源:推荐使用布局

    2016-03-11

  • <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/select" android:state_pressed="true" android:state_window_focused="true"/> <item android:drawable="@drawable/select" android:state_focused="true" android:state_window_focused="true"/> <item android:drawable="@drawable/select" android:state_selected="true" android:state_window_focused="true"/> <item android:drawable="@drawable/normal"/> </selector> <SeekBar android:thumb="@drawable/my_thumb"//*** android:id="@+id/seekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="50" />
    查看全部
  • public class MainActivity extends Activity implements OnSeekBarChangeListener { private SeekBar sb; private TextView tv1, tv2; @Override protected void onCreate(...) { ... sb = (SeekBar) findViewById(R.id.seekBar1); tv1 = (TextView) findViewById(R.id.textView1); tv2 = (TextView) findViewById(R.id.textView2); sb.setOnSeekBarChangeListener(this); } // 正在拖动且改变数值 @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { tv1.setText("正在拖动"); tv2.setText("当前数值:" + progress); } // 开始拖动 @Override public void onStartTrackingTouch(SeekBar seekBar) { tv1.setText("开始拖动"); } // 停止拖动 @Override public void onStopTrackingTouch(SeekBar seekBar) { tv1.setText("停止拖动"); } }
    查看全部
  • ViewFlipper
    查看全部
  • 使用Gallery和ImageSwitcher制作图片浏览器 public class MainActivity extends Activity implements OnItemSelectedListener,ViewFactory{ ... private ImageSwitcher is; protected void onCreate(...) { ... gallery.setOnItemSelectedListener(this); is.setFactory(this); is.setInAnimation(AnimationUtils.loadAnimation(this, android.R.anim.fade_in)); is.setOut...; } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //iv.setBackgroundResource(res[position%res.length]); is.setBackgroundResource(res[position%res.length]); } @Override public void onNothingSelected(AdapterView<?> parent) { } @Override public View makeView() { ImageView image=new ImageView(this); image.setScaleType(ScaleType.FIT_CENTER); return image; } }
    查看全部
  • 这一节突然弄懂了将xml布局文件可以转换为对象。
    查看全部
  • public class MainActivity extends Activity { //准备数据源 private int res[]={R.drawable.item1,R.drawable.item2,R.drawable.item3,R.drawable.item4,R.drawable.item5,R.drawable.item6, R.drawable.item7,R.drawable.item8,R.drawable.item9,R.drawable.item10,R.drawable.item11,R.drawable.item12}; private Gallery gallery; private ImageAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gallery=(Gallery) findViewById(R.id.gallery1); //gallery加载适配器 adapter=new ImageAdapter(res, this); gallery.setAdapter(adapter); } }
    查看全部
  • 使用Gallery制作图片浏览器 public class ImageAdapter extends BaseAdapter { private int res[]; private Context context; public ImageAdapter(int res[],Context context) { this.res=res; this.context=context; } //返回数据源的数量 @Override public int getCount() { return res.length; } @Override public Object getItem(int position) { return res[position]; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ImageView iv=new ImageView(context); iv.setBackgroundResource(res[position]); iv.setLayoutParams(new Gallery.LayoutParams(400, 300)); iv.setScaleType(ScaleType.FIT_XY); return iv; } }
    查看全部
  • 利用系统的浏览器打开网页 之3行代码
    查看全部
    0 采集 收起 来源:WebView概述

    2016-03-11

  • 控制ScrollView视图位置 private Button btn_up, btn_down; @Override public void onClick(View v) { //scrollTo:以滚动视图起始位置开始计算 //scrollBy:以相对前次滚动位置开始计算 switch (v.getId()) { case R.id.up: sv.scrollTo(0, -30); break; case R.id.down: sv.scrollTo(0, 30); break; } }
    查看全部

举报

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

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