Android自定义带标题边框的Layout

本文介绍如何在Android中创建一个带有标题边框的自定义布局,该布局继承自LinearLayout。虽然存在标题占用布局高度的问题,但通过调整子控件的位置可以避免与标题边框过于接近。分享了自定义布局的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     今天工作中又碰到个小问题,项目需要用到像Java Swing的JPanel一样带标题边框的布局,Android里没有类似控件,想到这个也不难,自己画了一个,是继承LinearLayout的一个自定义布局,当然,可以根据需要继承其他布局,基本都是一样的过程。

      当然这个自定义布局有点瑕疵,就是标题占用了布局的一部分高度,子控件需要调整在布局中的垂直位置来避免和标题边框靠得过紧。


------------------本博客如未明正声明转载,皆为原创,转载请注明出处!------------------


下面贴代码:

/**
 * 一个像java swing的JPanel控件一样可以带标题边框的布局,可以指定标题位置、颜色、字体大小。
 * 另外还可以控制边框大小和边框的颜色。但是,子控件指定垂直布局适应的时候,子控件看起来并不在布局中间,
 * 因为标题高度占用了布局的一部分垂直空间,使用时子控件需要指定Margin Top,否则可能和标题重叠。
 * 
 * This is a layout with title border, you can set a title just like Java-Swing JPanel.
 * and you can control the position, the color and the size of the title. In addition,
 * the border's color and size are always controlled.
 * 
 * !FIXME: The title has its own height, so when the children's gravity set as {@link Gravity#CENTER} 
 * or {@link Gravity#CENTER_VERTICAL} do not work well.
 * 
 * @date 2013/09/24
 * @author Wison
 */
public class TitleBorderLayout extends LinearLayout {
	
	/**  默认情况下标题在总长度的1/10处显示  */
	private static float DEFAULT_TITLE_POSITION_SCALE = 0.1f;
	public static int DEFAULT_BORDER_SIZE = 1;
	public static int DEFAULT_BORDER_COLOR = Color.GRAY;
	public static int DEAFULT_TITLE_COLOR = Color.BLACK;

	/** 边框面板的高度 */
	private int mBorderPaneHeight ;
	
	private 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值