Android 添加子视图(addView和setView)
我们在添加视图文件的时候有两种方式,一种是通过在xml文件定义layout,另一种方式是在java代码中动态生成布局文件。
LayoutInflater inflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);或 LayoutInflater inflater = LayoutInflater.from(Activity.this);或 LayoutInflater inflater = getLayoutInflater();
这三种方法本质是相同的。
(2)inflate()
用LayoutInflater.inflate() 将LayOut文件转化成VIew。
View view = inflater.inflate(R.layout.login, null);
toast.setView(view);
package com.cn.query; import android.app.Activity; import android.os.Bundle; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.androidquery.AQuery; public class AQueryTest2 extends Activity { AQuery aq = new AQuery(this); private Button button; protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.test1); aq.id(R.id.button1).visible().clicked(this, "click"); } public void click() { // 动态生成布局视图--适用于简单布局 Toast toast = new Toast(AQueryTest2.this); toast.setDuration(3000); // 设置重心--让toast居中显示 toast.setGravity(Gravity.CENTER, 0, 0); LinearLayout ll = new LinearLayout(AQueryTest2.this); ImageView iv = new ImageView(AQueryTest2.this); iv.setImageResource(R.drawable.icon1); // 设置图片内边距,使textview显示在右侧,避免重叠 iv.setPadding(0, 0, 15, 0); // 布局属于ViewGroup,可以调用添加视图方法 ll.addView(iv); TextView textview = new TextView(AQueryTest2.this); textview.setText("我是创建消息的提示框"); // ll.addView(textview); toast.setView(ll); toast.show(); } public void click2() { // 动态生成布局视图--适用于复杂UI布局 Toast toast = new Toast(AQueryTest2.this); toast.setDuration(3000); // 设置重心 toast.setGravity(Gravity.CENTER, 0, 0); // 创建inflater LayoutInflater inflater = getLayoutInflater(); // 通过inflate方法将layout转化为view View view = inflater.inflate(R.layout.toast, null); // 设置视图--Toast继承自Widget,不是容器,只能调用设置视图方法 toast.setView(view); toast.show(); } }
toast.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical|center_horizontal" android:orientation="horizontal" > <ImageView android:id="@+id/imageview3" android:layout_width="fill_parent" android:layout_height="wrap_content" android:paddingBottom="0px" android:paddingLeft="0px" android:paddingRight="5px" android:paddingTop="0px" android:src="@drawable/icon1" /> <TextView android:id="@+id/textview3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="消息提示" /> </LinearLayout>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。