当前位置: 代码迷 >> Android >> Android 透过按钮Button更改全部的TextView、EditText、Button的字体大小、字体颜色、背景颜色
  详细解决方案

Android 透过按钮Button更改全部的TextView、EditText、Button的字体大小、字体颜色、背景颜色

热度:128   发布时间:2016-05-01 17:44:11.0
Android 通过按钮Button更改全部的TextView、EditText、Button的字体大小、字体颜色、背景颜色

本文实现的是自定义设置字体大小、字体颜色、背景颜色,然后通过一键全部修改整个视图内所有的TextView、EditText、Button的字体大小、字体颜色、背景颜色。

实现的逻辑:通过遍历View的方式,判断View是否是TextView、EditText和Button类型,如果是的话,就修改。

代码如下:

1、xml布局文件,文件名:test4.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="fill_parent"   android:layout_height="fill_parent"   android:orientation="vertical"   android:id="@+id/mainLayout">           <LinearLayout android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">                <EditText android:id="@+id/fontSize"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="30"        android:hint="请输入数字"/>                <Button android:id="@+id/ChangeSize"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="改变字体"/>                </LinearLayout>        <LinearLayout android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">                <EditText android:id="@+id/fontColor"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="#ffffff"        android:hint="请输入字体颜色"/>                <Button android:id="@+id/ChangeColor"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="改变字体颜色" />                </LinearLayout>            <LinearLayout android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="horizontal">                <EditText android:id="@+id/bgColor"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="#ff0000"        android:hint="请输入背景颜色"/>                <Button android:id="@+id/ChangeBgColor"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="改变背景颜色"/>                </LinearLayout>        <LinearLayout android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:orientation="vertical">           <TextView android:id="@+id/TextView01"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="top"   		android:gravity="top"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView02"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="bottom"   		android:gravity="bottom"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView03"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="left"   		android:gravity="left"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView04"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="right"   		android:gravity="right"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView05"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="center_vertical"   		android:gravity="center_vertical"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView06"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="fill_vertical"   		android:gravity="fill_vertical"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView07"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="center_horizontal"   		android:gravity="center_horizontal"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView08"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="fill_horizontal"   		android:gravity="fill_horizontal"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   		   		   		   		   		   		   <TextView android:id="@+id/TextView09"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="center"   		android:gravity="center"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView10"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="fill"   		android:gravity="fill"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView11"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="clip_vertical"   		android:gravity="clip_vertical"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>   		   <TextView android:id="@+id/TextView12"   		android:layout_width="fill_parent"   		android:layout_height="50dp"   		android:text="clip_horizontal"   		android:gravity="clip_horizontal"   		android:textColor="#ffffff"   		android:background="#00ff00"   		android:layout_margin="2px"/>    </LinearLayout>   		   		   		   		   		</LinearLayout>


2、实现的代码文件:MainActivity.java,代码如下:

package org.shuxiang.test;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.Window;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;public class MainActivity extends Activity{		private LinearLayout mainLayout;	private Button changeSize, changeColor, changeBgColor;	private EditText fontSize, fontColor, bgColor;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        requestWindowFeature(Window.FEATURE_NO_TITLE);        setContentView(R.layout.test4);                mainLayout = (LinearLayout) findViewById(R.id.mainLayout);        changeSize = (Button) findViewById(R.id.ChangeSize);        fontSize = (EditText) findViewById(R.id.fontSize);                changeSize.setOnClickListener(new OnClickListener()        {			@Override			public void onClick(View v)			{				// TODO Auto-generated method stub				setFontSize(mainLayout, Float.parseFloat(fontSize.getText().toString()));			}        	        });                changeColor = (Button) findViewById(R.id.ChangeColor);        fontColor = (EditText) findViewById(R.id.fontColor);                changeColor.setOnClickListener(new OnClickListener()        {			@Override			public void onClick(View v)			{				// TODO Auto-generated method stub				int color = Integer.parseInt(fontColor.getText().toString().replace("#", ""), 16);				int red = (color & 0xff0000) >> 16; 			    int green = (color & 0x00ff00) >> 8; 			    int blue = (color & 0x0000ff); 			    			    setFontColor(mainLayout, Color.rgb(red, green, blue));							}        	        });                changeBgColor = (Button) findViewById(R.id.ChangeBgColor);        bgColor = (EditText) findViewById(R.id.bgColor);                changeBgColor.setOnClickListener(new OnClickListener()        {			@Override			public void onClick(View v)			{				// TODO Auto-generated method stub				int color = Integer.parseInt(bgColor.getText().toString().replace("#", ""), 16);				int red = (color & 0xff0000) >> 16; 			    int green = (color & 0x00ff00) >> 8; 			    int blue = (color & 0x0000ff);			    				setBgColor(mainLayout, Color.rgb(red, green, blue));			}        	        });                   }        /**     * 改变字体     * @param v     * @param fontSize     */    public void setFontSize(View v, float fontSizeValue)    {    	if(v instanceof TextView)		{			((TextView) v).setTextSize(fontSizeValue);		}		else if(v instanceof EditText)		{			((EditText) v).setTextSize(fontSizeValue);		}		else if(v instanceof Button)		{			((Button) v).setTextSize(fontSizeValue);		}		else		{			int vChildCount = ((ViewGroup) v).getChildCount();	    	for(int i=0; i<vChildCount; i++)	    	{	    		View v1 = ((ViewGroup) v).getChildAt(i);	    		setFontSize(v1, fontSizeValue);	    	}		}	    }        /**     * 改变字体颜色     * @param v     * @param fontSize     */    public void setFontColor(View v, int fontColorValue)    {    	if(v instanceof TextView)		{			((TextView) v).setTextColor(fontColorValue);		}		else if(v instanceof EditText)		{			((EditText) v).setTextColor(fontColorValue);		}		else if(v instanceof Button)		{			((Button) v).setTextColor(fontColorValue);		}		else		{			int vChildCount = ((ViewGroup) v).getChildCount();	    	for(int i=0; i<vChildCount; i++)	    	{	    		View v1 = ((ViewGroup) v).getChildAt(i);	    		setFontColor(v1, fontColorValue);	    	}		}	    }        /**     * 改变背景字体     * @param v     * @param fontSize     */    public void setBgColor(View v, int bgColorValue)    {    	if(v instanceof TextView)		{			((TextView) v).setBackgroundColor(bgColorValue);		}		else if(v instanceof EditText)		{			((EditText) v).setBackgroundColor(bgColorValue);		}		else if(v instanceof Button)		{			((Button) v).setBackgroundColor(bgColorValue);		}		else		{			int vChildCount = ((ViewGroup) v).getChildCount();	    	for(int i=0; i<vChildCount; i++)	    	{	    		View v1 = ((ViewGroup) v).getChildAt(i);	    		setBgColor(v1, bgColorValue);	    	}		}	    }    }


 

  相关解决方案