首页 > 代码库 > Android 帧布局FrameLayout之霓虹灯效果
Android 帧布局FrameLayout之霓虹灯效果
FrameLayout的常用XML属性及相关方法
XML 属性 | 相关属性 | 说明 |
android:foreground | setForeground(Drawable) | 设置该帧布局容器的前景图像 |
android:foregroundGravity | setForegroundGravity(int) | 定义绘制前景图像的gravity属性 |
帧布局的页面定义文件:
1 <?xml version="1.0" encoding="utf-8"?> 2 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 > 6 <TextView 7 android:id = "@+id/vieww01" 8 android:layout_width= "wrap_content" 9 android:layout_height= "wrap_content"10 android:layout_gravity = "center"11 android:width="200pt"12 android:height="200pt"13 android:background="#f00" />14 <TextView15 android:id="@+id/vieww02"16 android:layout_width= "wrap_content"17 android:layout_height= "wrap_content"18 android:layout_gravity = "center"19 android:width = "160pt"20 android:height = "160pt"21 android:background="#0f0"/>22 <TextView23 android:id = "@+id/vieww03"24 android:layout_width = "wrap_content"25 android:layout_height = "wrap_content"26 android:layout_gravity = "center"27 android:width="110pt"28 android:height="110pt"29 android:background="#00f" />30 <TextView31 android:id = "@+id/vieww04"32 android:layout_width="wrap_content"33 android:layout_height="wrap_content"34 android:layout_gravity = "center"35 android:width="80pt"36 android:height="80pt"37 android:background="#ff0"38 />39 <TextView40 android:id = "@+id/vieww05"41 android:layout_width="wrap_content"42 android:layout_height="wrap_content"43 android:layout_gravity = "center"44 android:width="50pt"45 android:height="50pt"46 android:background="#f0f"47 />48 <TextView49 android:id = "@+id/vieww06"50 android:layout_width="wrap_content"51 android:layout_height="wrap_content"52 android:layout_gravity = "center"53 android:width="20pt"54 android:height="20pt"55 android:background="#0ff"56 />57 58 </FrameLayout>
主程序代码:
1 package com.example.think.myapplication; 2 3 import android.os.Handler; 4 import android.os.Message; 5 import android.os.Bundle; 6 import android.widget.TextView; 7 import android.app.Activity; 8 import java.util.Timer; 9 import java.util.TimerTask;10 11 public class MainActivity extends Activity {12 13 private int currentColor = 0;14 // 定义一个颜色数组15 final int[] colors = new int[]{16 R.color.color1,17 R.color.color2,18 R.color.color3,19 R.color.color4,20 R.color.color5,21 R.color.color622 };23 24 final int[] names = new int[]{25 R.id.vieww01,26 R.id.vieww02,27 R.id.vieww03,28 R.id.vieww04,29 R.id.vieww05,30 R.id.vieww0631 };32 TextView [] views = new TextView[names.length];33 Handler handler = new Handler(){34 @Override35 public void handleMessage(Message msg){36 //表明消息来自本程序所发送的37 if (msg.what == 0x123){38 for (int i = 0;i < names.length; i++){39 views[i].setBackgroundResource(colors[(i+currentColor) % names.length]);40 }41 currentColor++;42 }43 super.handleMessage(msg);44 }45 };46 @Override47 protected void onCreate(Bundle savedInstanceState) {48 super.onCreate(savedInstanceState);49 setContentView(R.layout.activity_main);50 for (int i = 0; i < names.length ; i++){51 views[i] = (TextView) findViewById(names[i]);52 }53 //定义一个线程周期性地改变currentColor变量值54 new Timer().schedule(new TimerTask() {55 @Override56 public void run() {57 //发送一条空消息通知系统改变6个TextView组件的背景色58 handler.sendEmptyMessage(0x123);59 }60 },0,200);61 }62 }
/res/values目录下新建colors.xml文件,配置如下:
1 <?xml version="1.0" encoding="utf-8"?> 2 <resources> 3 <color name="colorPrimary">#3F51B5</color> 4 <color name="colorPrimaryDark">#303F9F</color> 5 <color name="colorAccent">#FF4081</color> 6 <color name="color1">#f00</color> 7 <color name="color2">#0f0</color> 8 <color name="color3">#00f</color> 9 <color name="color4">#ff0</color>10 <color name="color5">#f0f</color>11 <color name="color6">#0ff</color>12 </resources>
Android 帧布局FrameLayout之霓虹灯效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。