问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Android自定义layout怎么写

发布网友 发布时间:2022-04-20 16:19

我来回答

1个回答

热心网友 时间:2023-09-20 04:04

LinearLayout自定义方法有多种:
1、自定义xml布局,然后加载布局,自定义一个View继承LinearLayout
2、在自定义控件中声明它的所有子元素,然后在Layout文件中像使用LinearLayout一样去进行布局。

第二种比较烦 ,它需要在Layout文件中定义好子元素之后,要在代码 onFinishInflate() 进行匹配子元素。

我就说说加载布局文件的方法吧。
首先:定义好layout文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="5dip"
android:paddingLeft="40dip"
android:paddingTop="5dip"
android:src="@drawable/right_icon" />

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="8dip"
android:text="主题"
android:textColor="#000000" />
<LinearLayout
android:layout_width="100dp"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="5dip"
android:paddingLeft="12dip"
android:paddingTop="5dip"
android:src="@drawable/home_icon" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingBottom="5dip"
android:paddingLeft="12dip"
android:paddingTop="5dip"
android:src="@drawable/add_icon" />
</LinearLayout>

</LinearLayout>
public class MyLinearLayout extends LinearLayout {

private ImageView imageView,iv_home,iv_add;
private TextView textView;

public MyLinearLayout (Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyLinearLayout (Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.actionbar, this);
imageView=(ImageView) findViewById(R.id.imageView1);
iv_home=(ImageView) findViewById(R.id.imageView2);
iv_add=(ImageView) findViewById(R.id.imageView3);
textView=(TextView)findViewById(R.id.textView1);

}

/**
* 设置图片资源
*/
public void setImageResource(int resId) {
imageView.setImageResource(resId);
}

/**
* 设置显示的文字
*/
public void setTextViewText(String text) {
textView.setText(text);
}

}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="

android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

<cn.com.demo.view.MyLinearLayout
android:id="@+id/ll_actionbar"
android:layout_height="fill_parent<span style="font-family: Tahoma, 'Microsoft Yahei', Simsun;">" </span>
android:layout_width="wrap_content"
android:background="@drawable/bg"
/>
</LinearLayout>
接下来自定义一个MyLinearLayout继承LinearLayout,并且加载刚刚写好的layout文件。(比如http://www.tiecou.com)
public class MyLinearLayout extends LinearLayout {
private ImageView imageView,iv_home,iv_add;
private TextView textView;
public MyLinearLayout (Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyLinearLayout (Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.actionbar, this);
imageView=(ImageView) findViewById(R.id.imageView1);
iv_home=(ImageView) findViewById(R.id.imageView2);
iv_add=(ImageView) findViewById(R.id.imageView3);
textView=(TextView)findViewById(R.id.textView1);
}
/**
* 设置图片资源
*/
public void setImageResource(int resId) {
imageView.setImageResource(resId);
}

/**
* 设置显示的文字
*/
public void setTextViewText(String text) {
textView.setText(text);
}
}
最后,要的时候使用定义好的MyLinearLayout控件。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机为啥投屏不到电视上 投屏到电视机上为什么不行了呢? 什么是超买状态,如何看出—个股票处于超买状态了? 用电脑怎么弄表格在电脑上制作表格怎么制作 ...明细帐、财务报表,带公式,EXCELE格式的文件,能发给我吗谢_百度... 电脑出入库表格怎么做作为一个仓管员excel表格如何做出入库存库存电脑会... 你好,可以发下库存管理的EXCEL表格么?衣服面料辅料都要统计,谢谢!麻烦... 电脑怎么制作电子表格如何用电脑制作表格 你好,能给我发一份出纳excel 做账模板现金流水账表格 芝麻香鸡有什么值得推荐的做法? 安卓手机 怎样设置自启动 安卓系统可以 制自吗 怎样控制安卓软件的自启动? 安卓系统可以制自吗? 怎样设置把微信设置上密码 手机怎么设置微信密码 换手机以后怎么恢复微信聊天记录 换手机了,微信聊天记录怎么恢复,原来的手机无法使用? 换手机了微信聊天记录如何恢复? 换了一部手机微信怎么恢复微信聊天记录 椰蓉,面包糠之类的能带上动车吗? 椰蓉、面包糠哪里有卖? 面包糠与椰蓉的差别是什么?? 面包糠的用途 面包糠怎么用 面包糠的用途与禁忌? 面包粉和面包糠的用途分别是什么? 椰蓉能用面包屑代替吗 面包糠起什么作用? 紧急求助!!!怎样才能让面包糠和椰蓉在春卷上面... 安卓系统自恢复工具怎么了 如何阻止安卓手机应用自启动 安卓手机的自适应显示就是原彩吗 安卓手机产自哪里 为什么安卓手机的软件总是自启? 怎么取消,安卓应用,开机自动启动的权限 安卓为什么要允许应用程序自启? 安卓 怎样自定义一个时间选择器 2022年体育生录取标准是什么? 2022体育高考评分标准是什么? 2022温州中考体育评分标准是什么? 2022年体育生录取标准是什么 2022河南省中考体育评分标准是什么? 为什么黑鲨手机的散热能力 都是比较好的? 黑鲨2怎么设置电量低于多少时自动开启省电 黑鲨三代智能限制后台运行和无限制哪个更耗电? 黑鲨手机指纹解锁在省电模式下消失了怎么办? 高一新生用什么手机好,男,不喜欢拍照。游戏偏向... 黑鲨helo应用长时间耗电在哪里设置 哪款手机耗电最慢的呢?