zoukankan      html  css  js  c++  java
  • UI_1

    依然按照视频讲解,但是 AppCompatActivity和ActionBarActivity一直弄不好,现在也不明白有什么区别。
    所以想回到《疯狂安卓讲义第三版》在那上面阅读代码,明白代码,一步一步走
    今天做的是UI_1一个图片循环浏览:
    首先引入一下(我不知道引入的是什么玩意儿)import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.ImageView;
    import android.widget.LinearLayout;
    接下来创建图片数组,格式R.Drawable.q,这里的q是图片名字。当然需要把图片放在Drawable文件夹下。这是我自己想出来的,毕竟原来没有图片,这样试了试还真成功了。

    // 获取LinearLayout布局容器

    LinearLayout main = (LinearLayout) findViewById(R.id.root);
    // 程序创建ImageView组件
    final ImageView image = new ImageView(this);
    // 将ImageView组件添加到LinearLayout布局容器中
    main.addView(image);
    // 初始化时显示第一张图片
    image.setImageResource(images[0]);
    image.setOnClickListener(new View.OnClickListener()
    {
    @Override
    public void onClick(View v)
    {
    // 改变ImageView里显示的图片
    image.setImageResource(images[++currentImg % images.length]);
    }
    });
    //定时周期性发送一条指令
    new Timer().schedule(new TimerTask()
    {
    @Override
    public void run()
    {
    // 发送一条空消息通知系统改变6个TextView组件的背景色
    handler.sendEmptyMessage(0x123);
    }
    }, 0, 500);
    //接收到指令操作程序
    Handler handler = new Handler()
    {
    @Override
    public void handleMessage(Message msg)
    {
    // 表明消息来自本程序所发送
    if (msg.what == 0x123)
    {
    for (int i = 0; i < names.length; i++)
    {
    views[i].setBackgroundResource(colors[(i
    + currentColor) % names.length]);
    }
    currentColor++;
    }
    super.handleMessage(msg);
    }
    循环显示图片以及改变图框颜色。**建立颜色数组,建立图片文件数组**

    final int[] colors = new int[] {
            R.color.color1,
    R.color.color2,
    R.color.color3,
    R.color.color4,
    R.color.color5,
    R.color.color6
    };
    final int[] names = new int[] {
    R.id.view01,
    R.id.view02,
    R.id.view03,
    R.id.view04,
    R.id.view05,
    R.id.view06 };
    接下来学习几个关键字(Java本来就没怎么看)
    this,final,super。线程,多态。

    使用final修饰方法参数的目的是防止修改这个参数的值,同时也是一种声明和约定,强调这个参数是不可变的.简言之就这意思。

    在java里面,this表示自己本身(自己本身这个对像的引用)所以在这个class里,this.value 和value都表示同样的意思
    类是LinkNode,this只指自己这个LinkNode,
    super的另外一个作用是调用父类的protected函数。只有通过"super"这个魔咒,我们才能操作父类的protected成员,别无它法。
    一个调用父类的所以方法,在父类中实现的,在子类中写个super()可以。

    main方法其实也是一个线程。在java中所以的线程都是同时启动的,至于什么时候,哪个先执行,完全看谁先得到CPU的资源。在java中,每次程序运行至少启动2个线程。一个是main线程,一个是垃圾收集线程。因为每当使用java命令执行一个类的时候,实际上都会启动一个JVM,每一个jVM实习在就是在操作系统中启动了一个进程。
     
    UI1的布局管理器:线性布局<LinearLayout>、表格布局<TableLayout>、帧布局<FrameLayout>、相对布局<RelativeLayout>、网格布局<GridLayout>以及已经过时的<AbsoluteLyaout>绝对布局。
    GridLayout gridLayout;//开始定义一个网格布局类型
    gridLayout = (GridLayout) findViewById(R.id.root);//根据ID锁定操作网格布局
    /********************************************/
    //编辑按钮
    <Button
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_columnSpan="4"
    android:text="清除"/>
    //在Java文件里新建按钮
    Button bn = new Button(this);
    bn.setText(chars[i]);
    // 设置该按钮的字号大小
    bn.setTextSize(40);
    // 设置按钮四周的空白区域
    bn.setPadding(5 , 35 , 5 , 35);
    /*************************/
    //把相应组件分布在对应的列
    GridLayout.Spec rowSpec = GridLayout.spec(i / 4 + 2);
    // 指定该组件所在的列
    GridLayout.Spec columnSpec = GridLayout.spec(i % 4);

















      

  • 相关阅读:
    网页定位导航
    position元素的定位
    节点属性
    css控制换行,断词
    css隐藏多余文字显示...
    重绘和回流
    CSS属性书写顺序
    模拟select
    常用html标签
    clientHeight、scrollHeight和offsetHeight基本用法
  • 原文地址:https://www.cnblogs.com/yhc04161120/p/4761789.html
Copyright © 2011-2022 走看看