布局中基本属性 宽: android:layout_width 高: android:layout_height 值: wrap_content 按内容的实际大小来衡量 match_parent 铺满父容器 固定值,如 100dp 50dp
处理内容(或者孩子)的对齐方式 android:gravity="bottom|right" 可以选的值 left 、 right 、 top 、 bottom 、 center(居中) 、 center_horizontal(水平居中) 、 center_vertical(垂直居中)
背景: android:background="@drawable/pic3" 可以设置颜色或者图片或者形状
内边距: android:padding 四周向内设置内边距 paddingLeft 左内边距 paddingRight 右内边距 paddingTop 顶部内边距 paddingBottom 底部内边距
外边距: android:layout_margin 四周向外的边距 layout_marginLeft 左外边距 layout_marginRight 右外边距 layout_marginTop 顶部外边距 layout_marginBottom 底部外边距 显示隐藏: android:visibility="visible" 默认值 visible 表示可见 invisible 不可见 , 占位置 gone 不可见 , 不占位置
文本框TextView android:text="@string/hello_world" 设置文本内容 android:textColor="@color/my_tx_color" 设置文本颜色 颜色可以直接设置颜色值用 # 开头 如:( RGB 模式) #FF0000 ( ARGB ) #FFFF0000 也可以在 values 下定义颜色值 #ff0000 在布局中使用 @ 引用颜色 android:textColor="@color/my_tx_color" android:textSize="30sp" 文本大小 ( 单位为 sp ,默认大小是 16sp) 关于大小和尺寸可以在 values 下定义 dimen 30sp 然后用 @ 来引用 android:textSize="@dimen/m_tx_size" android:shadowRadius="3.0" 设置文本阴影半径 android:shadowColor="#000000" 阴影颜色 android:ellipsize="end" 过长文本处理方式 start\middel\end 表示在开头、中间、结尾加省略号 ( 结合 lines 属性一起使用 ) android:lines="2" 设置显示多少行 android:maxLines="3" 最大行数 android:minLines="2" 最少行数 android:textScaleX="0.5" 水平方向拉伸或者压缩文本 ( 瘦一点或者胖一点 ) android:textStyle="italic" 文本样式(粗体 bold ,斜体 italic ) android:marqueeRepeatLimit="marquee_forever" 跑马灯的重复次数 marquee_forever 表示永久 android:drawableLeft="@drawable/ic_launcher" 在文本左边加小图标 , 类似的还有 drawableRight 右边加小图标 drawableTop 顶部加小图标 drawableBottom 底部加小图标

布局 普通视图还是布局都继承自 View ,其中 ViewGroup 就是所有布局的父类, ViewGroup 继承自 View 同时可以对 View 进行管理 ( 编排,控制 View 显示位置和大小 )
FrameLayout:帧布局 ( 框架布局 ) ,布局特性是所有孩子默认叠在该容器左上角 其中孩子中可以使用 android:layout_gravity 来调整自己在父容器中的位置 ( 主动权在孩子身上 ) ,跟 android:gravity 不一样的是 android:gravity 主动权在父元素身上
LinearLayout:线性布局,可以水平编排或者垂直编排孩子的显示 android:orientation="vertical" 设置方向 vertical 垂直 ( 沿着 y 坐标 ) horizontal 水平方向(沿着 x 坐标) 线性布局中可以使用 android:layout_weight 属性设置权重,可以将 LinearLayout 中剩下的部分进行比例划分 LinearLayout 中如果需要使用占位视图可以使用 Space
LinearLayout 中使用 android:gravity 可以调整孩子的对齐方式,但是要注意方向, 垂直的 ( 如果高不定 ) ,可以调整孩子在 left\centerhorizontal\right 如果是水平 ( 宽如果不定 ) 可以调整孩子在 top\centervertical\bottom

RelativeLayout:相对布局
第一种:子视图相对于父容器,取值为 true/false android:layout_alignParentLeft="true" 靠父容器左侧 android:layout_alignParentRight="true" 靠父容器右侧 android:layout_alignParentTop="true" 靠父容器顶部 android:layout_alignParentBottom="true" 靠父容器底部 android:layout_centerVertical="true" 垂直居中 android:layout_centerInParent="true" 居中 android:layout_centerHorizontal="true" 水平居中
第二种:子视图之间相互参考,值对方视图的 id --> @id/xxx,id的声明与使用要注意先后顺序 id 的声明: @+id/id 名称 如: @+id/tv_a id 的引用: @id/id 名称 如: @id/tv_a android:layout_toLeftOf 在谁的左侧 android:layout_toRightOf 在谁的右侧 android:layout_above 在谁的上面 android:layout_below 在谁的下面 android:layout_alignTop 顶部对齐 android:layout_alignLeft 左侧对齐 android:layout_alignRight 右侧对齐 android:layout_alignBottom 底部对齐



布局复用 如果有多个页面中存在相同部分效果,可以将相同部分抽出来,然后其他页面应用,提高复用性,其中引用需要使用include标签,用法 定义一个布局,如:titile.xml 在需要使用给title_layout的页面上直接用include导入
布局引入的合并标签 标签可以将导入的布局中的孩子直接添加到目标容器中,减少被引入的布局的根节点
Java中操作布局元素 继承Activity 重写onCreate方法表示监听窗户的创建 super.onCreate(savedInstanceState); 表示窗口已经创建成功(空白窗口) setContentView(R.layout.activity_main) ;表示设置布局的方法,一般放在onCreate方法中 处理布局中的视图 TextView tvResult=findViewById(R.id.tv) ;表示从布局中加载视图对象的方法,一般要在setContentView之后使用 tvResult.setText / setTextColor / setTextSize ...
注意: java 中使用颜色值必须是十六进制表示法,如 xml 中的红色 #ff0000 对应的 java 表示为 0xff0000 ,并且 java 中建议使用 ARGB 方式表示法,如红色 (RGB 表示 )0xff0000 建议使用 (ARGB 表示 )0xffff0000
按钮----Button button继承TextView,可以响应用户按下状态的视图 android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点我试试"/> 按钮的基本设置
基本监听操作 Android系统中针对每一个View,都提供了触摸、点击、长按等基本监听
点击监听的实现(三种方法) 第一种方式 创建一个内部类继承OnClickListener class BtnClick implements OnClickListener { 当View被点击触发该方法,其中参数v表示被点击的目标View @Override public void onClick(View v) { count++; tv.setText("按钮被点击了" + count + "次"); } } Activity的onCreate()中 从布局中获取按键对象,初始化按键 Button btn = (Button) findViewById(R.id.btn_1); TextView tv = (TextView) findViewById(R.id.tv_1); 创建监听对象 BtnClick btnClick = new BtnClick(); 给按钮设置监听 btn.setOnClickListener(btnClick);
第二种 匿名内部类的方式实现监听 private OnClickListener onBtnListener=new OnClickListener(){ @Override public void onClick(View v){ tv.setText("匿名内部类的方式设置监听") } }; 设置监听 btn.setOnClickListener(onBtnListener);
第三种 Activity上直接imPlements OnClickListener然后重写 onClick方法 public classMainActivity extends Activity implements OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView tv=(TextView)findById(R.id.tv_1); 使用this关键字来获取监听器对象 findViewById(R.id.btn_1).setOnClickListener(this); } @Override public void OnClick(View v){ 针对多个按钮都需要设置监听的情况,一般只需要一个监听器,然后在监听其中室友视图id区分是谁被点击 switch(v.getId()){ case R.id.btn_1: tv.setText("直接在Activity上实现的监听方式"); break; case R.id.btn_2: tv.setText("直接在Activity上实现的监听方式"); break; .... } } }
长按监听 介于 Android 事件的基本流程如下:
基本事件 ACTION_DOWN 按下瞬间,手指接触屏幕瞬间 ACTION_MOVE 按下之后离开之前的整个过程(重复) 会触发长按 ACTION_UP 离开瞬间 ,手指从屏幕上离开的瞬间
可以看出只有 move 部分有时间,所以可以猜测出 move 部分会触发长按,但是点击触发的位置是 up ,所以会有事件之间传递的问题,为了区分长按和点击需 要在长按触发的方法中通过 true 和 false 处理是否需要拦截
// 设置长按监听 setOnLongClickListener btn2.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { tvResult.setText(" 按钮 2 被长按 "); //false 表示不拦截事件 //true 表示拦截事件,事件到此为止 return true; } });
Logcat 设备运行中打印 log 信息的信息面板, logcat 等级: verbose : 最详细的等级 --> Log.v debug : debug 级别的日志,一般是调试性日志 -->Log.d info : info 级别的日志,一些运行中的提示信息 --> Log.i warn : 警告级别日志 -->Log.w error : 错误级别的日志 -->Log.e 程序中自己打印 log 信息,可以使用如下方式
Log.v( 标签,内容 ); 如 Log.v("m_tag"," 这是一个 log 信息 ");
空指针是最常见的一种异常, null.xxx ,所以出现空指针最快速的解决办法就是找点之前的内容





更多相关文章

  1. Android自学笔记之Android常见命令操作及一些普通布局属性
  2. Android共有五种布局方式
  3. Android布局_View属性
  4. Android利用setLayoutParams在代码中调整布局(Margin和居中)
  5. Android界面布局基本属性
  6. android布局动画实现方法
  7. 安卓入门.RelativeLayout相对布局2
  8. Android之TabHost布局

随机推荐

  1. Android Robotium如何管理测试用例的执行
  2. Android程序老是报错
  3. Java与C互相调用实例详解
  4. 王家林最受欢迎的一站式云计算大数据和移
  5. ffmpeg从视频中提取帧时间戳
  6. Android Web-View:将本地Javascript文件注
  7. Android各种蓝牙设备的UUID
  8. Spannable、Spanned、Editable用法及差别
  9. Androidx学习笔记(79)--- 视频播放器二(Vide
  10. Android的Intel XDK构建错误