1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Android在Activity中动态增加xml自定义样式布局控件(引用xml布局文件和循环增加控件)

Android在Activity中动态增加xml自定义样式布局控件(引用xml布局文件和循环增加控件)

时间:2021-01-02 23:32:54

相关推荐

Android在Activity中动态增加xml自定义样式布局控件(引用xml布局文件和循环增加控件)

工程目录:

MainActivity

package com.example.test1121;import androidx.appcompat.app.ActionBar;import androidx.appcompat.app.AppCompatActivity;import android.app.Activity;import android.content.Intent;import android.os.AsyncTask;import android.os.Bundle;import android.text.method.ScrollingMovementMethod;import android.util.DisplayMetrics;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.RelativeLayout;import android.widget.TextView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ActionBar bar=getSupportActionBar();bar.hide();//增加XML样式控件布局final LayoutInflater inflater = LayoutInflater.from(this);//被插入的布局final LinearLayout layout1 = (LinearLayout) findViewById(R.id.linearLayout);//插入的布局LinearLayout layout2 = (LinearLayout) inflater.inflate(R.layout.btn_layout, null).findViewById(R.id.btn_layout);layout1.addView(layout2);//动态增加自定义xml样式控件String s="我是动态增加的自定义xml样式按钮";char c[]=s.toCharArray();for(char t:c){final Button btn=new Button(getApplicationContext());btn.setBackgroundResource(R.drawable.btn_style);btn.setText(""+t);btn.setTextSize(12);btn.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {btn.setWidth(72);btn.setHeight(72);v.setMinimumHeight(72);v.setMinimumWidth(72);}});layout2.addView(btn);//之所以在这里回调onclick是因为在绘制图形时有一个绘制时间,get/setHeight、get/setWidth来设置控件会显示高宽为0,用了好多方法,只有这个方法有效btn.callOnClick();}}}

btn_style.xml

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="/apk/res/android"><!--按下--><item android:state_pressed="true"><shape><gradient android:startColor="#90CAF9" android:endColor="#90CAF9"android:angle="270" /><stroke android:width="1px" android:color="#0088F1FF" /><corners android:radius="25dip" /><padding android:left="10dp" android:top="10dp"android:right="10dp" android:bottom="10dp" /><size android:height="10dp" android:width="10dp"/><sizeandroid:width="10dp" android:height="10dp" /></shape></item><!--抬起--><item><shape><gradient android:startColor="#C5E1A5" android:endColor="#C5E1A5"android:angle="180" /><stroke android:width="1px" android:color="#00111010" /><corners android:radius="25dip" /><padding android:left="0dp" android:top="0dp"android:right="0dp" android:bottom="0dp" /><sizeandroid:width="10dp" android:height="10dp" /></shape></item></selector>

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><HorizontalScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:scrollbars="none"><LinearLayoutandroid:id="@+id/linearLayout"android:layout_width="match_parent"android:layout_height="36dp"android:gravity="center"android:orientation="horizontal"></LinearLayout></HorizontalScrollView></LinearLayout></androidx.constraintlayout.widget.ConstraintLayout>

btn_layout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:id="@+id/btn_layout"android:layout_width="wrap_content"android:layout_height="wrap_content"><Buttonandroid:id="@+id/btn0"android:background="@drawable/btn_style"android:layout_width="34sp"android:textSize="12dp"android:layout_height="34sp"android:text="1"/><Buttonandroid:id="@+id/btn1"android:background="@drawable/btn_style"android:layout_width="34sp"android:textSize="12dp"android:layout_height="34sp"android:text="2"/><Buttonandroid:id="@+id/btn2"android:background="@drawable/btn_style"android:layout_width="34sp"android:textSize="12dp"android:layout_height="34sp"android:text="3"/><Buttonandroid:id="@+id/btn3"android:background="@drawable/btn_style"android:layout_width="34sp"android:textSize="12dp"android:layout_height="34sp"android:text="4"/></LinearLayout>

以上就是在Android的Activity中动态增加布局和控件的两种方法。

大致思路:

**第一种:**在主布局下增加另外一个xml布局文件。在Activity中可以通过findViewById改变另一个xml文件中的控件来使该控件在主布局中相应地改变。

**第二种:**在主布局下动态增加多个自定义样式控件。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。