返回
顶部

修改密码

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

+1

-1

收藏

+1

-1

点赞0

评论0

本文实现的是自定义设置字体大小、字体颜色、背景颜色,然后通过一键全部修改整个视图内所有的TextView、EditText、Button的字体大小、字体颜色、背景颜色。实现的逻辑:通过遍历View的方式,判断View是否是TextView、EditText和Button类型,如果是的话,就修改。代码如下:…

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

实现的逻辑:通过遍历View的方式,判断View是否是TextView、EditText和Button类型,如果是的话,就修改。
代码如下:
1、xml布局文件,文件名:test4.xml,内容如下:
[html] 
<?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,代码如下:
[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); 
            } 
        }    
    }     
 作者:AMinfo

扫一扫在手机打开

评论
已有0条评论
0/150
提交
热门评论
相关推荐
今日要闻
换一批
热点排行