展会信息港展会大全

Android 通过按钮Button更改全部的TextView、EditText、Button的字体大小、字体颜色、背景颜色
来源:互联网   发布日期:2015-11-25 22:19:39   浏览:12170次  

导读:本文实现的是自定义设置字体大� ⒆痔逖丈?⒈尘把丈??缓笸ü?患??啃薷恼?鍪油寄谒?械腡extView、EditText、Button的字体大� ⒆痔逖丈?⒈尘把丈?J迪值穆呒?和ü?槔鶹...

本文实现的是自定义设置字体大孝字体颜色、背景颜色,然后通过一键全部修改整个视图内所有的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

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港