简单说说 自己对 android LayoutParams的理解吧,xh写不出高级文章是低级写手。
public static class
ViewGroup.LayoutParams
extends Object
java.lang.Object
↳ android.view.ViewGroup.LayoutParams //继承关系
以下说明摘自官方文档E文好的可以看看
Class Overview
LayoutParams are used by views to tell their parents how they want to be laid out. See ViewGroup Layout Attributes for a list of all child view attributes that this class supports.
The base LayoutParams class just describes how big the view wants to be for both width and height. For each dimension, it can specify one of:
FILL_PARENT (renamed MATCH_PARENT in API Level 8 and higher), which means that the view wants to be as big as its parent (minus padding)
WRAP_CONTENT, which means that the view wants to be just big enough to enclose its content (plus padding)
an exact number
There are subclasses of LayoutParams for different subclasses of ViewGroup. For example, AbsoluteLayout has its own subclass of LayoutParams which adds an X and Y value.
E文不好看不懂 但是觉得写得啰嗦了
其实这个LayoutParams类是用于child view(子视图) 向 parent view(父视图)传达自己的意愿的一个东西(孩子想变成什么样向其父亲说明)其实子视图父视图可以简单理解成
一个LinearLayout 和 这个LinearLayout里边一个 TextView 的关系 TextView 就算LinearLayout的子视图 child view 。需要注意的是LayoutParams只是ViewGroup的一个内部类 这里边这个也就是ViewGroup里边这个LayoutParams类是 base class 基类 实际上每个不同的ViewGroup都有自己的LayoutParams子类
比如LinearLayout 也有自己的 LayoutParams 大家打开源码看几眼就知道了
myeclipse 怎么查看源码 请看
http://byandby.iteye.com/blog/814277
下边来个例子
//创建一个线性布局
private LinearLayout mLayout;
mLayout = (LinearLayout) findViewById(R.id.layout);
//现在我要往mLayout里边添加一个TextView
//你可能会想直接在布局文件里边配置不就O 了 那是 但是这里为了说明问题我们用代码实现
TextView textView = new TextView(Activity01.this);
textView.setText("Text View " );
//这里请不要困惑这里是设置 这个textView的布局 FILL_PARENT WRAP_CONTENT 和在xml文件里边设置是一样的如
/**<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Text View"/>*/
//在xml里边怎么配置高宽大家都会的。
//第一个参数为宽的设置,第二个参数为高的设置。
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
//调用addView()方法增加一个TextView到线性布局中
mLayout.addView(textView, p);
//比较简单的一个例子
如果还不能理解下边在来一段直白的说明:
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,即包裹住组件就好。
基本就这么多了,不要想的太复杂。
分享到:
相关推荐
通过理解和熟练使用LinearLayout.LayoutParams,开发者可以更灵活地控制布局在LinearLayout中的显示效果,满足各种复杂的界面设计需求。这在实际的Android应用开发中是非常重要的技能,有助于创建出用户友好的界面。...
在Android平台上,游戏悬浮球(通常称为悬浮小部件或悬浮控件)是一种常见的功能,它允许用户在游戏或其他应用上快速访问...通过深入理解这个示例,你可以掌握创建自定义悬浮控件的技术,从而提升你的Android开发技能。
开发者可以参考这个示例源码来学习和理解如何在Android上创建具有漂浮效果的UI元素。 在实际应用中,漂浮窗口可以用于多种场景,如音乐播放的歌词同步、即时通讯应用的浮动聊天窗口、阅读应用的书签标记等。但需要...
在Android开发中,自定义View是一项常见的任务,它...通过`viewslide`示例项目,开发者可以亲自实践这些移动方法,加深理解和应用。项目中的代码示例将有助于更好地掌握每个方法的用法,以及它们在实际场景中的表现。
以下是一个简单的示例,展示了如何使用`WindowManager.LayoutParams`创建一个悬浮窗口: ```java public class myFloatView extends Activity { @Override public void onCreate(Bundle savedInstanceState) { ...
首先,我们需要理解Android的文本操作API。在Android中,复制和粘贴操作是通过`ClipboardManager`类来实现的。这个类允许我们将文本数据放入剪贴板,然后在需要的地方取出。以下是一个简单的使用示例: ```java // ...
这个"Android高级应用源码-android解决软键盘遮挡输入框的示例代码"就是针对这个问题提供的解决方案。 首先,我们要理解Android布局在键盘弹出时的行为。Android系统默认使用`WindowManager.LayoutParams.SOFT_...
本示例将深入探讨Android View的相关知识,帮助开发者更好地理解和运用这一核心概念。 1. **View类基础** - View是所有UI组件的基类,位于`android.view.View`包下。它负责绘制和处理用户交互。 - 每个View都有一...
"Register_Project_一个全屏显示的Android注册界面示例"是一个很好的学习资源,可以帮助开发者理解如何实现这样的功能。下面,我们将详细探讨这个示例中的关键知识点。 1. **全屏显示**: - 在Android中,让应用...
在Android应用开发中,屏幕适配是一个至关重要的环节,尤其对于拥有众多不同尺寸和分辨率设备的Android生态系统来说。本篇文章将深入探讨`SurfaceView`与`layout`在屏幕适配中的应用及其策略。 首先,`SurfaceView`...
这个 `(android实现可拖拽的悬浮框)使用示例` 提供了一个具体的实现方式,帮助开发者理解并应用到自己的项目中。下面将详细讲解如何在Android中创建这样一个功能。 首先,悬浮框通常通过`WindowManager`服务来添加...
SampleWindow作为示例,帮助开发者理解窗口对象如何创建、配置以及在Android框架中如何工作。 SampleWindow的源码分析是学习Android框架内部运作的好途径。通过阅读和修改这部分代码,我们可以了解窗口的生命周期、...
这个标题“Android-Android任意界面悬浮窗实现悬浮窗如此简单”暗示了我们将探讨如何轻松地创建这样的功能。描述进一步强调了实现的简便性,让我们相信即使对Android开发不太熟悉的人也能理解并实现。 首先,我们要...
通过深入理解Android的窗口管理、视图系统以及多媒体播放,你可以进一步优化悬浮窗的性能和用户体验,例如添加拖放功能、调整视频比例、处理屏幕旋转等。这个名为`MyFloatView`的压缩包文件提供了一个直接运行的示例...
为了解决这个问题,我们可以自定义一个布局来处理这种现象,就像"Android解决软键盘遮挡输入框的示例代码"所展示的那样,通过重写LinearLayout来实现。 首先,我们要理解为什么会出现软键盘遮挡输入框的问题。这是...
以下是一个简单的布局示例: ```xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:...
在Android开发中,透明状态栏是一种常见的设计...在提供的`TestDemo`项目中,你可以找到具体的代码示例,通过查看和运行这个示例,你应该能更好地理解和掌握透明状态栏的实现方式。实践是最好的老师,动手尝试一下吧!
在Android开发中,动态加载布局文件是一种常见的技术,它允许我们在程序运行时根据需要加载不同的视图或组件,而不是在XML布局文件中静态定义。...理解并掌握这一技术对于提升Android应用的用户体验至关重要。
在Android开发中,Dialog是一种常见的用户交互界面,用于在主线程中显示临时信息或进行简单的用户操作。默认情况下,Dialog会出现在屏幕中央,但开发者可以根据需求自定义其样式和显示位置。本文将深入探讨如何在...
首先,我们要理解`WindowManager`是Android系统提供的一个接口,它允许应用程序与窗口管理器进行交互,添加、删除和更新窗口。悬浮窗实际上就是一种特殊的窗口类型,通常称为`TYPE_SYSTEM_ALERT`或`TYPE_TOAST`。 ...