Android动态加载XML文件及控件来简单实现QQ好友印象的功能
来源:互联网 发布:怎么健身 知乎 编辑:程序博客网 时间:2024/04/29 12:20
在android开发中,我们常常会遇到界面布局控件不确定的情况。由于某些功能的原因或者为了体现某些app的特色等这些原因会导致我们在实现界面布局时需要动态去加载一些控件,那么下面就来介绍一下如何用动态加载控件来简单实现QQ中好友印象的功能,其中也会提到如何来动态加载一个XML的配置文件。
那么要实现好友印象的功能,我们需要通过以下这几个步骤:
1.界面一开始需要加载一个EditText和Button控件,用于填写好友印象和添加好友印象;
2.需要新建一个arrays.xml,在xml文件中添加上好友印象标签的背景颜色;
3.在Activity中加载xml文件,获取文件中的颜色,并且为Button控件添加事件监听,实现点击后能够自动生成带有背景颜色的好友印象标签。
按照以上三个步骤,来看下面的代码:
在该配置文件中只随便定义了四种颜色
arrays.xml
<?xml version="1.0" encoding="utf-8"?><resources> <string-array name="colorsArray"> <item >#ff78ff</item> <item >#abcd12</item> <item >#cdba34</item> <item >#345677</item> </string-array></resources>
下面来看下怎么来加载配置文件和控件
package com.example.sundyandroidtest;import java.util.Random;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.LinearLayout.LayoutParams;import android.widget.TextView;public class AutoColorShowActivity extends Activity{//保存XML文件中的颜色字符串String[] aColors;//声明一个线性布局LinearLayout mLayout = null;//声明线性布局的width和heightLinearLayout.LayoutParams lpFF;//声明控件的width和heightLinearLayout.LayoutParams lpWW;//声明好友印象标签TextView colorTextView = null;//声明添加按钮Button butAdd = null;//声明好友印象评价输入框EditText editText = null;//声明随机数,用于随机标签颜色Random rand = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//获取颜色字符串数组aColors = getResources().getStringArray(R.array.colorsArray);mLayout = new LinearLayout(this);//设置布局属性mLayout.setOrientation(LinearLayout.VERTICAL);lpFF = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);lpWW = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.WRAP_CONTENT);mLayout.setLayoutParams(lpFF);//向布局中添加控件editText = new EditText(this);mLayout.addView(editText, lpWW);butAdd = new Button(this);butAdd.setText("添加");mLayout.addView(butAdd, lpWW);setContentView(mLayout);rand = new Random();butAdd.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//生成一个0到数组长度之间的随机数int tag = rand.nextInt(aColors.length-1);//获取EditText中输入的好友印象评价String info = editText.getText().toString();//动态生成一个文本标签,并为标签设置文本和颜色colorTextView = new TextView(AutoColorShowActivity.this);colorTextView.setText(info);colorTextView.setTextColor(Color.BLACK);colorTextView.setTextSize(30f);colorTextView.setBackgroundColor(Color.parseColor(aColors[tag]));mLayout.addView(colorTextView, lpWW);editText.setText("");//更新布局mLayout.refreshDrawableState();}});}}
1 0
- Android动态加载XML文件及控件来简单实现QQ好友印象的功能
- Android自定义控件实战仿新浪微博QQ好友动态滑到底部自动加载
- 仿开心网好友印象功能实现(收集而来备用)
- Android自定义控件实战——仿新浪微博、QQ好友动态滑到底部自动加载
- (VIEW控件)Android之实现QQ好友分组(ExpandableListView)
- 留神MSN和QQ好友发送来的文件!!!
- Android 下拉刷新框架实现、仿新浪微博、QQ好友动态滑到底部自动加载
- 自定义ExpandableListView 实现像QQ好友列表一样的功能
- android 实现QQ好友列表
- Android:仿手机QQ好友动态的ListView
- Android:仿手机QQ好友动态的ListView
- IOS实现仿qq好友列表功能
- 简单动态加载磁盘文件----删除功能
- Android之原始的QQ好友分组实现
- 65 Android ExpandableListView (QQ好友列表的实现)
- Android开发学习之QQ好友列表的实现
- 【Android】实现类似于QQ将好友的头像用作快捷方式。
- 封装实现JavaScript 文件的动态加载功能
- 韓長庚 易經大意 目次
- 杭电acm:最小公倍数(附源码)
- Objective - C基础: 第五天 - 4.@property - 内存管理
- HTML页面过渡效果大全
- getopt和getopt_long函数
- Android动态加载XML文件及控件来简单实现QQ好友印象的功能
- 新建Maven+Spring项目错误集锦
- uva 11384 Help is needed for Dexter(模拟)
- [Java]Eclipse配置JDK的图解步骤
- USACO1.2.4 Palindromic Squares (palsquare)
- Codeforces Round #276 (Div. 2) Factory
- Populating Next Right Pointers in Each Node II
- Java 对象数组初始化 和 基本类型数组初始化的区别
- Activity的启动模式