第一行代码Android-------第二章控件部分

一、控件

1、大小

    match_parenr:与父布局大小一样

    fill_parent:与match_parent一样

    wrap_content:控件大小刚好包住里面内容

2、TextView   在界面上显示一段文字

        android:text = "显示的文字"

        android:gravity:"文字对齐方式" //可选值有top、bottom、right、center,可以用|来指定多个值

        android:textSize:文字大小

        android:textColor :文字颜色

3、Button 按钮

        android:text:显示文字

        android:textAllCaps:大小写转换禁用、默认全部转换为大写

        注册监听器

          button.setOnClickListener(new View.OnClickListener(){

              public void onClick(View v){}

              })  

4、EditText 输入和编辑内容

        android:hint="提示输入的内容"

        android:maxLines="最多输入行数"

5、ImageView 展示图片

        android:src="@drawable/图片"

        更改图片内容

        image.setImageResource();

6、progressBar 进度条

        android:visibility=“是否可见”、 visibility 可见  invisible隐藏 gone 完全不可见 且不占据空间

        修改样式

            style:"?android:attr/progressBarStyleHorizontal"//水平进度条

        设置可见性

          setVisibility(VIew.VISIABLE);//View.INVISIBLE,View.GONE;

7、AlterDialog

    弹出对话框

8、ProgressDialog

二、四种布局

  1、LinearLayout线性布局

    android:orientation 方向

    android:layout_gravity=布局中位置

    android:layout_weight=控件大小比例

  2、RelativeLayout 相对布局

  3、FrameLayout 帧布局

  4、百分比布局

三、自定义控件

  1、创建布局

    新建layout.xml文件

  2、在mainlayout.xml文件中引入布局文件

    <include layout="layout.xml">

  3、编写事件

    LayoutInflater.from(Context).inflater(R.layout.XXX,this);

  4、或者在布局文件中引入自定义控件事件文件

      <packagename.activityfile

      android:layout_width=""

      android:layout_height=""/>

四、ListView 用于展示大量数据

  1、编写布局文件及展示的布局文件

       <ListView

        andriod:id=

        andrioid:layout_width=""

        andriod:layout_height="">

  2、新建展示的类

    class Fruit{}

  3、重写适配器Adapter

    public class FruitAdapter extends ArrayAdapter<Fruit>{

      private int resourceId;

      public FruitAdapter(Context context,int textViewResourceId,List<Fruit>objects){

        super(context,textViewResource,objects);

        resourceId = textViewResourceId;

      }

      public View getView(int position,View convertView,ViewGroup parent){

        Fruit fruit = getItem(position);

        View view = LayoutInflater.from(getcontext()).inflate(resourceId,parent,flase);

        TextView textview =view.findViewById(R.id.textview);

        return view;

      }

  4、修改mainActivity

     FruitAdapter fruitadapter = new FruitAdapter(MainActivity.this,R.layout.fruit_item,fruitlist);//展示的上下文,layout布局,展示的数据list

     ListView listview = findViewById(R.id.list_view);

     listview.setAdapter(adapter);

  5、优化

       1.converView,将之前加载好的布局进行缓存,以便之后可以复用

        if(convertView == null){

          view = LayoutInflater.from(getContext()).inflater(resourceId,parent,false);

          }else{

          view = convertView;

          }

       2、创建viewHolder内部类,对控件实例进行缓存,从而只获取一次布局实例

}

五、RecyclerView  对ListView进行优化

   1、引入

     在build.gradle中dependence中添加

        implement ‘com.android.support:recyclerview-v7:24.2.1‘

     之后sync now进行同步

  2、使用 在layout文件中

    <android.support.v7.widget.RecyclerView

    android:id="@+id/"

    android:layout_wight=" "

    android:layout_height=""  />

  3、创建适配器

    public class  FruitAdapter extends RecyclerView.Adapter<FruitAdapter.ViewHolder>{

      static   class ViewHolder extneds Recycler.ViewHolder{  }; // viewHolder 内部类

      public FruitAdapter (){ }; //构造函数

      public ViewHolder onCreateViewHolder(ViewGroup parent,int position){

        View view = LayoutInflate.from(parent.getContext()).inflate(R.layour.fruit_layout,parent,false);

        ViewHolder viewholder = new ViewHolder(view);

        return viewholder;

      }

      public viod onBindViewHolder(ViewHolder holder ,int position){

        Fruit fruit  = furitlist.get(position);

        holder.fruitImage.setImageREsource(fruit.getImageId());

        holder.fruitname.setText(fruit.getname());

      }

      public int getItemCount(){

        return fruitlist.size();

      }

      }

     4、修改mainActivity

      RecyclerView recyclerview = (RecyclerView)findViewById(R.layout.id.recyclerview);

      LinerLayoutManager layoutmanage = new LinerLayoutManager(this);

      recycleView.setLayoutManager(layoutManager);

      FruitAdapter adapter = new FruitADapter(fruitlist);

      recyclerView.setAdapter(adapter);

原文地址:https://www.cnblogs.com/karryzhang/p/9510271.html

时间: 2024-08-27 01:05:06

第一行代码Android-------第二章控件部分的相关文章

第一行代码 Android 第二版到货啦

今日android第一行代码[第二版]已到,收获的季节到了 先看一下封面 书签: 以后就把空闲时间送给它吧 先来看一下本书的目录: 第1章 开始启程--你的第1行Android代码 第2章 先从看得到的入手--探究活动 第3章 软件也要拼脸蛋--UI开发的点点滴滴 第4章 手机平板要兼顾--探究碎片 第5章 全局大喇叭--详解广播机制 第6章 数据存储全方案--详解持久化技术 第7章 跨程序共享数据--探究内容提供器 第8章 丰富你的程序--运用手机多媒体 第9章 看看精彩的世界--使用网络技术

android第二章控件1

1.Activity:用于存放各个显示控件,是android的基本组成 2.Activity常用方法:public final View findViewById(int id) 根据组件的id取得组件对象       public void setContentView(int layoutResIdd)  设置显示组件 3.设置控件的ID值:格式:@+id/ID值 4.TextView标签(标签按钮): 4.1常用属性:1:android:text //定义组件的显示文字 2:  textC

android第二章控件2

Button (按钮) EditText(编辑框)                 android: password=""                                     //是否以密文方式显示             android: numeric="integer"                           //只能输入数字             android: hint="**"          

20172327 2017-2018-2 《第一行代码Android》第一章学习总结

学号 2017-2018-2 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等. 2.系统运行底层 - 通过一些C/C++库来为Android系统提供了主要的特性支持 库名 功能 SQLite库 提供数据库的支持 OpenGL/ES库 提供3D绘图支持 Webkit

历时一年,我的著作《第一行代码——Android》火爆预售!

前言 其实我当初决定开始写博客的想法挺简单的,觉得自己搞技术这么多年了,总应该要留下点什么.既然没能写出什么出色的应用,那至少也要留下点文字分享给大家,以指引在我后面的开发者们,毕竟我也从前辈们的博客那里受惠了很多. 受邀 下定决心之后我就开始了我的博客之旅,令我没想到的是,我写的文章竟然非常受大家的欢迎,短时间内就聚集了大量的人气.更令我没想到的事,在我开始写博客不久之后,人民邮电出版社图灵公司的副总编辑陈冰先生就联系上了我,希望我可以写一本关于Android开发技术的书籍! 陈冰,第一次听到

历时一年,我的著作《第一行代码——Android》已出版!

前言 事实上我当初决定開始写博客的想法挺简单的,认为自己搞技术这么多年了,总应该要留下点什么.既然没能写出什么出色的应用,那至少也要留下点文字分享给大家,以指引在我后面的开发人员们,毕竟我也从前辈们的博客那里受惠了非常多. 受邀 下定决心之后我就開始了我的博客之旅,令我没想到的是,我写的文章居然非常受大家的欢迎,短时间内就聚集了大量的人气.更令我没想到的事,在我開始写博客不久之后,人民邮电出版社图灵公司的副总编辑陈冰先生就联系上了我,希望我能够写一本关于Android开发技术的书籍! 陈冰,第一

《第一行代码——Android》封面诞生记

<第一行代码——Android>已经上市快一个月了,目前销售情况还算良好,也是特别感谢众多朋友的支持.其实一本书如果想要卖的好,除了内容必 须要给力之外,封面的设计也是至关重要的,而本书的封面无疑是在充实的内容之外又披上了一层华丽的外衣.作为作者,其实我的任务就是将内容写好而已,其它 所有相关工作都不是由我负责的.本书封面设计的所有细节都是由陈冰先生一手抓起的,之后他在图灵社区上记录了本书封面的诞生过程.在经过他同意的情况下, 我将这篇文章转到我的博客上,也是让感兴趣的朋友们了解一些不为人知的

《第一行代码——Android》

<第一行代码--Android>是Android初学者的最佳入门书.全书由浅入深.系统全面地讲解了Android软件开发的方方面面. 第1章带领你搭建Android开发环境,完成你的第一个Android程序. 第2章至第13章完整地讲解了Android开发中的各种基本知识和关键技术,包括四大组件.UI.碎片.广播机制.数据存储.服务.多媒体.网络.定位服务.传感器,以及分布式版本控制系统Git的使用等等.在部分章节会穿插相关技术的高级使用技巧. 第14章和第15章则将带领你编写一个完整的项目,

晒订单赢图灵图书,《第一行代码——Android》福利活动劲爆来袭!

我的著作<第一行代码--Android>已经预售几天了,这段时间也有不少朋友早早地就订购了这本书,感谢大家对我一如既往的支持,在离发货还有十几天的时候就预订了这本书. 为了特别感谢在预售期就这么支持我的朋友们,现在图灵公司大力支持下举办一个晒订单赢图灵图书的活动,欢迎已经订购和准备订购的朋友们积极参与进来.如果你还没有订购,只需在7月31号之前下单,就可以参与此活动,购买地址见左侧导航栏. 活动介绍 凡是预售期间(即7月31号之前)在当当.京东.亚马逊.互动其中之一(不包含淘宝)订购<第