当前位置:首页 » 安卓系统 » android控件高度

android控件高度

发布时间: 2025-06-04 02:32:12

Ⅰ 如何正确获取Android控件的高度

Android动态改变View控件大小的方法: 1、声明控件参数获取对象 LayoutParams lp; 2、获取控件参数: lp = 控件id.getLayoutParams(); 3、设置控件参数:如高度。 lp.height -= 10; 4:、使设置生效:控件id.setLayoutParams(lp); 例如如要把Imageview下移200px: ImageView.setPadding( ImageView.getPaddingLeft(), ImageView.getPaddingTop()+200, ImageView.getPaddingRight(), ImageView.getPaddingBottom());

Ⅱ Android中测量控件的内部文字内容的宽、高度

在Android中,自定义View时通过Canvas绘制文字时,测量控件内部文字内容的宽、高是关键步骤。本文将介绍几种常用方法,旨在帮助开发者解决这一问题。

首先,可通过`Paint.measureText`方法测量文本的宽度。这是一个快捷方式,适用于快速获取文本宽度信息。

其次,使用`Paint.getTextBounds`方法,可以获得文字所在矩形区域,进而得到宽度和高度。该方法更为全面,适用于需要精确测量场景。

`Paint.getTextWidths`方法同样提供每个字符的宽度信息,对于处理多字符文本布局问题非常有用。

通过`Paint.FontMetrics`或`Paint.FontMetricsInt`可以获取高度。两者主要区别在于精度,前者为float,后者为int,具体使用时需根据需求选择。

获取高度时,注意到两个高度值略有不同,`height2`值略大于`height1`,以保证文本顶部和底部有足够的留白。在实际应用中,需根据具体需求选择合适的高度值。

此外,通过`Paint.getFontSpacing`和`Paint.getFontMetrics(null)`方法获取高度,本质上是调用`Paint.getFontMetrics`实现的。获取的高度值与`fontMetrics.descent - fontMetrics.ascent`计算结果一致。

`Layout.getDesiredWidth`方法用于获取宽度信息,但在TextView布局中可能存在文字实际占用高度与属性`textSize`值不一致的问题。文档中提示可通过设置`android:includeFontPadding`来控制是否包含上下空白。

总结而言,Android中测量文字内容宽、高有多种方法,开发者需根据具体需求选择合适的方法。理解不同方法的特性和应用场景,有助于更精确地控制文字布局,提升应用界面的美观性和用户体验。

Ⅲ 安卓开发·初恋 第三季之二:常用控件的使用方法

Android 提供大量 UI 控件,合理使用可轻松构建出色界而。本文选取常用控件,详细介绍其使用方法。

新建 UIWidgetTest 项目,允许自动创建活动,使用默认值。

TextView

用于显示文本信息,已熟悉。修改 layout,定义 ID,设置宽高,可选值有:match_parent、fill_parent、wrap_content。match_parent 表示控件大小与父布局一致,fill_parent 等效。wrap_content表示大小刚好包含内容。指定文本内容,运行程序查看效果。

使用 android:gravity 属性指定文字对齐方式,可选值有:top、bottom、left、right、center。设置为 center,效果等同于 center_vertical|center_horizontal。重新运行,文字居中。

调整文字大小和颜色,通过 android:textSize 和 android:textColor。使用 sp 单位。运行程序,查看效果。

TextView 多功能,更多属性查阅文档。

Button

用于交互,可配置属性与 TextView 类似。在布局文件中添加 Button。运行程序,显示效果。禁用默认大写转换,修改属性。为 Button 添加点击事件监听器,使用匿名类或实现接口。

实现监听,运行程序,点击按钮。

EditText

用于用户输入和编辑内容。修改 layout,指定 ID,宽度高度,加入控件属性。运行程序,输入内容。设置 android:hint 属性显示提示文本,重新运行,效果。指定 android:maxLines 属性限制行数,超过时文本滚动,控件不拉伸。

结合 EditText 和 Button,通过点击获取输入内容,实现功能。

ImageView

展示图片控件。准备图片,放置 drawable-xhdpi 目录。在 layout 中使用 android:src 属性指定图片。修改代码,动态更改图片。运行程序,显示图片。

ProgressBar

显示加载进度。修改 layout,运行程序,显示旋转进度条。使用 android:visibility 控制可见性,实现显示与隐藏。指定不同样式,如水平进度条,动态更新进度。

AlertDialog

弹出对话框,用于提示重要信息。在布局中设置标题、内容、关闭按钮,运行程序,点击按钮显示对话框。

ProgressDialog

与 AlertDialog 类似,显示进度条,用于耗时操作。设置标题、内容、取消按钮,运行程序,点击按钮显示进度对话框。注意,设置不能取消,必须在数据加载完成后关闭对话框。

掌握常用控件使用,还需不断学习查阅文档和网上资源。本书后续章节涉及新控件,将做详细讲解。学习控件使用,需在实践中不断探索。

Ⅳ 求助:android:layout

布局的介绍:
1、在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、FrameLayout、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。
2、在2.2操作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。
3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)
总之,Android中一共有六种布局。目前推荐使用RelativeLayout、LinearLayout、GridLayout三种布局。

LinearLayout:
(一)、概念:线性布局控制其中的控件或组件横向或纵向排列。不线性布局布局中,每一行或每一列只能放一个控件。并且线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来。
线性布局的默认方向是水平方向(Horizontal)。vertical

(二)、LinearLayout的常用属性:
1.android:orientation 定义布局内控件或组件的排列方式
可选项:vertical 、 horizontal

2.android:layout_width 定义控件的宽度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全一致,都是填充整个父控件。但是自2.2版本开始推荐使用match_parent 。wrap_content指的是该控件的宽度正好包裹内容物。

3.android:layout_height 定义控件的高度
可选项:fill_parent / match_parent/ wrap_content/绝对数值
备注:fill_parent / match_parent的效果完全一致,都是高度填充整个父控件。wrap_content指的是该控件的高度正好包裹内容物。

4.android:id 设置控件的id。这样就可以在R.java中自动生成相应的值,在程序中通过findViewById就可以调用。
设置id的格式为:android:id = "@+id/id的名字"

5.android:background 设置控件的背景颜色或背景图片
例如:android:background="#ffffff"
android:background="@drawable/图片名称"
【备注:】
颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。
#FFFFFF 代表白色
#000000 黑色
#FFFFFFFF 完全不透明
#00FFFFFF 完全透明
#88FFFFFF 半透明

6.android:layout_weight 设置控件的权重。即各控件在水平或者垂直方向上平均分配。
备注:如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。

7.android:gravity 该属性用来控制该View的内容物的位置。
如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。
如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。
可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
【备注:】本属性与android:layout_gravity不同。

8.android:layout_gravity 该属性用于设置控件相对于容器的对齐方式。
可选项有:top、bottom、left、right、center_vertical、center_horizontal 、fill_vertical 、 center、fill等等。
这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。
【备注:】而本属性是android:layout_gravity属性,与 android:gravity 属性不同。
(三)、LinearLayout的特有属性:【重新归纳:去除公共属性后的特有属性】
1、android:orientation 布局管理器内组件的排列方式
2、android:gravity 设置布局管理器内组件的对齐方式
(四)、 LinearLayout 子元素的特有属性:
1、android:layout_weight 子元素在 LinearLayout 中所占的权重
2、android:layout_gravity 子元素在 LinearLayout 中的对齐方式

RelativeLayout:
(一)、概念:指按着控件之间的相对位置来进行布局。
(二)、RelativeLayout特有属性:
1、android:gravity 设置布局容器内子控件的对齐方式
2、android:ignoreGravity 设置布局管理器内哪个控件不受gravity属性的影响
(三)、RelativeLayout子元素的特有属性:LayoutParams
A、第一组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。
layout_toRightOf 该控件在哪个控件的右侧
layout_toLeftOf 该控件在哪个控件的左侧
layout_above 该控件在哪个控件的上侧
layout_below 该控件在哪个控件的下侧
B、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。
layout_alignRight 该控件与哪个控件的右对齐
layout_alignLeft 该控件与哪个控件的左对齐
layout_alignTop 该控件与哪个控件的顶对齐
layout_alignBottom 该控件与哪个控件的底对齐
C、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。
layout_alignParentRight 该控件与父布局控件的右对齐吗?
layout_alignParentLeft 该控件与父布局控件的左对齐吗?
layout_alignParentTop 该控件与父布局控件的顶端对齐吗?
layout_alignParentBottom 该控件与父布局控件的底部对齐吗?
layout_centerInParent 该控件位于父布局控件的中心位置吗?
layout_centerVertical 该控件位于父布局控件的垂直中心位置吗?
layout_centerHorizontal 该控件位于父布局控件的水平中心位置吗?

GridLayout:网格布局
(一)、GridLayout布局属性:
1、android:alignmentMode
属性说明:设置布局的对齐模式。可以取以下值:
alignBounds -- 对齐子视图边界。
alignMargins -- 对齐子视图边距。
2、android:columnCount
属性说明:GridLayout的最大列数
3、android:rowCount
属性说明:GridLayout的最大行数
4、android:orientation
属性说明:GridLayout中子元素的布局方向。有以下取值:
horizontal -- 水平布局。
vertical -- 竖直布局。
5、android:columnOrderPreserved
属性说明: 设置该网格布局是否保留列序号。默认是true。
6、android:rowOrderPreserved
属性说明: 设置该网格布局是否保留行序号。默认是true。
7、android:useDefaultMargins
属性说明: 设置GridLayout使用默认的边距。默认值是false。
(二)、GridLayout子元素的属性:
1、android:layout_column
属性说明: 显示该控件的列。例如,android:layout_column="0",表示在第1列显示该控件;android:layout_column="1",表示在第2列显示该控件。
2、android:layout_row
属性说明: 该控件所在行。例如,android:layout_row="0",表示在第1行显示该控件;android:layout_row="1",表示在第2行显示该控件。它和 android:layout_column类似。
3、android:layout_columnSpan
属性说明: 列合并。即该控件所占的列数。例如,android:layout_columnSpan="2",表示该控件占2列。

4、android:layout_rowSpan
属性说明: 行合并。即该控件所占的行数。例如,android:layout_rowSpan="2",表示该控件占2行。
5、android:layout_gravity
属性说明:该控件的布局方式。选项值:
top -- 控件置于容器顶部,不改变控件的大小。
bottom -- 控件置于容器底部,不改变控件的大小。
left -- 控件置于容器左边,不改变控件的大小。
right -- 控件置于容器右边,不改变控件的大小。
center_vertical -- 控件置于容器竖直方向中间,不改变控件的大小。
fill_vertical -- 如果需要,则往竖直方向延伸该控件。
center_horizontal -- 控件置于容器水平方向中间,不改变控件的大小。
fill_horizontal -- 如果需要,则往水平方向延伸该控件。
center -- 控件置于容器中间,不改变控件的大小。
fill -- 如果需要,则往水平、竖直方向延伸该控件。
clip_vertical -- 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
clip_horizontal -- 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是 right的,则剪切该控件的左边。
start -- 控件置于容器的起始处,不改变控件的大小。
end -- 控件置于容器的结束处,不改变控件的大小。

Ⅳ 列举一下android界面中一些常用控件类型,这些控件都有哪些属性和行为

在Android界面开发中,常用的控件类型包括按钮(Button)、文本框(EditText)、文本视图(TextView)、列表(ListView)、网格视图(GridView)、滑动条(SeekBar)等。这些控件能够实现各种交互和功能展示,是构建应用程序的重要组成部分。

以按钮为例,其主要属性包括android:text用于设置按钮的文字内容,android:background用于设置按钮的背景样式,android:onClick用于绑定点击事件处理方法。滑动条同样具有android:background属性设置背景,但还包含了android:max和android:min属性,分别定义滑动条的最大值和最小值,同时滑动条还支持android:progress属性设置当前滑动条进度。

列表和网格视图主要用于展示数据列表,它们分别通过android:choiceMode和android:numColumns属性控制列表选择模式和网格列数。列表视图中,可以通过android:divider和android:dividerHeight属性设置分隔线样式与高度,网格视图则使用android:stretchMode属性调整网格列的填充方式。

对于文本视图,android:text用于设置显示的文本内容,android:gravity用于控制文本的对齐方式,android:textSize和android:textColor分别设置文本大小和颜色。文本框除了这些属性外,还具有android:inputType属性,用于设置输入类型,比如数字或电话号码等。

这些控件在实际应用中,可以通过设置属性和监听事件,实现丰富的交互效果。开发者需要根据实际需求选择合适的控件,并利用其属性进行个性化设置,以满足不同场景的需求。

在你的SDK目录中,有一份详尽的开发文档,里面详细描述了这些控件的属性和方法,你打开看看,查找你所需要的类。例如,我的路径是:E:\android-sdk-windows\docs\index.html,里面包含了大量关于控件使用的说明和示例,可以为你提供很多帮助。

通过深入研究这些文档,你可以更好地理解和掌握Android界面控件的应用,提升你的开发技能。

Ⅵ android布局中高为0dp 权重为1是什么意思

比如说有一个linearlayout他的高度是100

a控件weight=1 b控件weight=2,c控件weight=3,d控件height=40,那么

a控件的高度就是 ((100-40)/(1+2+3)) *1

b控件的高度就是 ((100-40)/(1+2+3)) *2

c控件的高度就是 ((100-40)/(1+2+3)) *3

如果a不设置height=0dp,那么当a控件高度大于((100-40)/(1+2+3)) *1时,weight属性不起作用,设置等于0,那么weight属性什么时候都起作用。

在学安卓过程中,一直想找一款应用能够展示各个章节的知识点,并且提供demo例子,就像谷歌Android API Demo一样,google api demo例子太老了,都是外文,例子也不够丰富,还不能看源码,也没有文档。于是把自己学习安卓过程中的用到例子都整合在了一起,并把例子都写在了android学习手册中,希望想学安卓的java同胞们,能有一个好的例子参考,快速学习安卓,少走弯路。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行,源码采用android studio目录结构,高亮显示代码,不需要积分,文档都采用文档结构图显示,可以快速定位,度娘不让发链接,360手机助手中可下载。下面是android学习手册中,关于权重的演示。

Ⅶ android 如何动态设置控件的宽度和高度

android中的控件如果在xml布局文件中把控件的layout_width和layout_height写成固定值了,好像就不能再在程序中更改该控件的高度和宽度了,不知哪位大侠有何良策可以指教一二,如 xml文件内容如下: <LinearLayout android:id="@id/dialog_bottom_neutral" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="1.0" android:gravity="center"<Buttonandroid:id="@id/dialog_bottom_neutral_button" android:layout_width="80.0dip" android:layout_height="28.0dip" android:background="@drawable/dlg_button" android:gravity="center" android:singleLine="true" android:text="mid" android:textColor="@drawable/dlg_button_text_color" android:textSize="14.0sp" / 小弟在程序中使用button.width和button.height设置没用,用LayoutParmas设置也没用

热点内容
如何查看自己以连接的无线wifi密码 发布:2025-06-05 22:39:11 浏览:7
u盘是怎样存储文件的 发布:2025-06-05 22:34:55 浏览:366
如何去掉缓存视频广告 发布:2025-06-05 22:33:59 浏览:429
如何设置淘宝账户和密码 发布:2025-06-05 22:33:04 浏览:883
友元可以访问私有成员函数 发布:2025-06-05 22:31:25 浏览:738
联想服务器怎样改地址 发布:2025-06-05 22:30:15 浏览:392
铠甲勇士刑天在哪缓存 发布:2025-06-05 22:14:03 浏览:302
反编译aPK修改端口 发布:2025-06-05 22:13:47 浏览:404
c编程比赛 发布:2025-06-05 22:07:43 浏览:228
区情数据库 发布:2025-06-05 22:07:38 浏览:80