- 浏览: 596256 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
LayoutParams继承于Android.View.ViewGroup.LayoutParams.
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住组件就好。
在JAVA中动态构建的布局,常常这样写:
上面这一句话其实是子对父的,也就是说,父布局下的子控件要设置这句话。
因为布局很多,虽然都继承至ViewGroup但是各个布局还是有很大的不同。
很显然下面这句应该这样写才算准确:
这表示这个子控件的父布局是一个TableRow , 这样的LayoutParams 太多,所以应明确指明。
下面分别说下两个常用到布局:
1. FrameLayout下动态设置子控件居中,动态用JAVA代码要这样实现:
2. RelativeLayout下动态设置子控件居中:
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。
但LayoutParams类也只是简单的描述了宽高,宽和高都可以设置成三种值:
1,一个确定的值;
2,FILL_PARENT,即填满(和父容器一样大小);
3,WRAP_CONTENT,即包裹住组件就好。
在JAVA中动态构建的布局,常常这样写:
setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT));
上面这一句话其实是子对父的,也就是说,父布局下的子控件要设置这句话。
因为布局很多,虽然都继承至ViewGroup但是各个布局还是有很大的不同。
很显然下面这句应该这样写才算准确:
setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,TableRow.LayoutParams.FILL_PARENT));
这表示这个子控件的父布局是一个TableRow , 这样的LayoutParams 太多,所以应明确指明。
下面分别说下两个常用到布局:
1. FrameLayout下动态设置子控件居中,动态用JAVA代码要这样实现:
FrameLayout.LayoutParams lytp = new FrameLayout.LayoutParams(80,LayoutParams.WRAP_CONTENT); lytp .gravity = Gravity.CENTER; btn.setLayoutParams(lytp);
2. RelativeLayout下动态设置子控件居中:
RelativeLayout.LayoutParams lp=new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT, RelativeLayout.TRUE); lp.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE); btn1.setLayoutParams(lp);
发表评论
文章已被作者锁定,不允许评论。
-
android BaseActivity与BaseFragment的封装
2016-05-19 15:06 10161 概述 多模块Activity+多Fragment 是开发 ... -
android ScrollView常用属性
2016-05-09 09:17 714android:scrollbars 设置滚动条显示。none ... -
android RecyclerView使用及详解
2016-05-04 10:35 29051.前言 话说RecyclerView已经面市很久,也在很多 ... -
android DialogFragment 创建对话框(官方推荐)
2016-04-29 14:22 9141、 概述 DialogFragment在android 3. ... -
android Intent Flags及Task相关属性
2016-04-26 09:15 626task是一个具有栈结构的容器,可以放置多个Activity实 ... -
android SQLite具体实例应用详解(SQLiteOpenHelper)
2016-04-18 19:24 822上次我向大家介绍了SQLite的基本信息和使用过程,相信朋友们 ... -
android SQLite3常用命令&语法
2016-04-18 19:01 624sqlite数据库只用一个文件就ok,小巧方便,所以是一个非常 ... -
android View绘制相关问题总结
2016-03-28 19:27 6901.View的绘制流程分几步 ... -
android Handler Looper MessageQueue机制的原理
2016-03-22 21:09 773andriod提供了Handler和Looper来满足线程间的 ... -
android Bitmap,BitmapFactory类图像处理
2016-03-16 16:28 2375BitMap代表一张位图,扩展名可以是.bmp或者.dib。 ... -
android 三类菜单(Option) (Context) (SubMenu)学习
2016-03-14 15:23 929在Android系统中,菜单可以分为三类:选项菜单(Optio ... -
android Sqlite数据库对象模型ORMLite框架学习
2016-03-11 15:24 716在Android项目中或多或少的都会使用数据库,为了提高我们的 ... -
android AsyncTask<参数,进度值类型,返回类型>学习
2016-03-10 14:45 1191AsyncTask和Handler对比 1 ... -
android 远程图片获取和本地缓存
2016-03-10 14:32 785概述 对于客户端——服 ... -
android onSaveInstanceState和onRestoreInstanceState学习
2016-03-10 10:08 806Android中的activity通过onSaveInst ... -
android Fragment生命周期和回退栈学习以及Fragment之间通信
2016-03-10 09:31 1538会涉及到Fragment如何产生,什么是Fragment,Fr ... -
android LruCache内存缓存学习(重写sizeOf方法)
2016-03-09 19:25 1069什么是缓存? 缓存技术原理就是把用户访问的所有对象看作一个全 ... -
android ListView中的convertView缓存及使用
2016-03-09 19:12 1716一、复用convertView 首先讲下ListView的原 ... -
android 从资源角度谈Android代码内存优化
2016-03-09 18:54 726开发人员如果在进行代码编写之前就有内存泄露方面的基础知识,那么 ... -
android startActivityForResult和setResult详情及Demo
2016-03-09 08:56 1057startActivityForResult与startAct ...
相关推荐
在这个主题中,我们将深入探讨如何使用LinearLayout.LayoutParams以及在Java代码中构建布局的方法。 1. **LinearLayout.LayoutParams的基本属性** - `android:layout_width`:定义子视图的宽度,可设置为`wrap_...
在Android开发中,自定义View是一项常见的任务,它允许开发者根据特定需求创建独特的用户界面元素。本文将深入探讨“Android View...项目中的代码示例将有助于更好地掌握每个方法的用法,以及它们在实际场景中的表现。
Android使用协调布局CoordinatorLayout的代码例子。用于演示CoordinatorLayout的基本用法,以及悬浮按钮FloatingActionButton、底部弹窗BottomSheetBehavior的使用方法。
在Android系统中,Home键是默认行为,允许用户随时返回主屏幕或切换到...同时,这种方法可能不适用于所有Android设备和版本,因为Android系统的Home键处理方式可能会有所不同。在不同API级别上进行适配和测试是必要的。
1. **使用dp单位**:Android推荐使用密度无关像素(dp)作为尺寸单位,而不是像素(px)。dp可以在不同密度的屏幕上保持一致的视觉大小。 2. **支持多种屏幕尺寸**:在res目录下创建不同尺寸的资源文件夹(如layout...
现需要交换两个控件...1、使用LayoutParams改变两个layout的属性,即其相对关系(below等),实现位置的交换,但是并没有交换的动画效果,是“瞬间”交换。 2、使用animation交换控件位置,实现了我需要的动画效果。
综上所述,Android中可以通过多种方式来设置控件的最小宽高,包括使用`LayoutParams`,调用`View`类的`setMinWidth`和`setMinHeight`方法,以及在XML布局文件中直接设置属性。理解并灵活运用这些方法,可以帮助...
本文将详细讲解如何在Android系统4.4(API Level 19)及以上版本实现这样的功能,主要涉及的技术点是使用`TYPE_TOAST`窗口类型。 首先,我们需要了解Android中的窗口类型。在Android中,每个应用都运行在一个独立的...
在Android系统中,桌面悬浮窗是一种非常实用的功能,它可以在用户使用其他应用程序的同时显示重要的信息或者提供便捷的操作入口。本文将深入探讨如何实现一个具备自由拖动和智能隐藏功能的Android桌面悬浮窗。 首先...
禁止屏幕休眠和锁屏可以使用三种方法:使用 WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON、使用 PowerManager.WakeLock 和禁用系统的锁频功能。每种方法都有其优缺,需要根据实际情况选择合适的方法。
2. 动画效果:使用`setAnimationStyle()`方法可以设置弹出和消失时的动画。 3. 避免遮挡输入框:确保PopupWindow不会覆盖到EditText等可输入控件,防止键盘弹出时无法操作。 通过以上步骤,我们可以成功地在Android...
本主题聚焦于如何在Android应用中不使用`visibility`属性来显示或隐藏布局。`visibility`属性虽然常见,但有时开发者可能需要更灵活的控制方式。以下是一些替代方法及其详细解释: 1. **使用ViewStub**: `ViewStub`...
在Xamarin.Android中,我们可以使用`Android.Views.WindowManager`类来获取这个服务,并通过它来添加我们的悬浮框。 1. **获取WindowManager服务**: 在Activity的`OnCreate`方法中,我们可以通过`...
对于悬浮窗,我们需要使用`LayoutParams.TYPE_PHONE`或`LayoutParams.TYPE_SYSTEM_ALERT`类型的参数,以确保它在其他应用之上显示。同时,也需要设置窗口的宽度、高度、x、y坐标等属性。例如: ```java ...
最后,在CustomLinearLayout类中,我们需要覆盖`generateLayoutParams(AttributeSet attrs)`和`checkLayoutParams(ViewGroup.LayoutParams p)`方法,以确保系统使用我们的自定义LayoutParams: ```java public ...
如果希望保持整个界面不被键盘挤压,可以使用`android:windowSoftInputMode="adjustResize"`,这样布局会自动调整大小适应键盘的显示。 **2. 全屏模式下的问题与解决方案** 全屏模式下,由于没有状态栏和导航栏,...
本教程将详细讲解如何在Android Studio中使用VideoView来播放本地视频。 首先,我们需要理解VideoView的基本结构和功能。VideoView继承自SurfaceView,它提供了播放视频的能力,支持多种视频格式,如MP4、3GP等。...
可以使用OnScrollChangeListener接口或者自定义ViewGroup的onInterceptTouchEvent()方法来捕获滚动事件。 ```java scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() { @Override public ...
本教程将深入讲解如何使用`WindowManager`服务来创建和管理Android悬浮窗,并通过一个简单的Demo——WindowManagerDemo来展示其实现过程。 首先,我们要理解`WindowManager`是Android系统提供的一个接口,它允许...
接着,需要在Activity的`onCreate()`方法中设置窗口属性,包括尺寸、位置以及是否允许用户通过点击屏幕其他区域关闭Activity。 ```java @Override protected void onCreate(Bundle savedInstanceState) { super....