开始的时候,要首先声明一下,这边文章,是一个以扫除开发技术障碍为目标的学习经验。并不适合正统的Android UI功能开发。我们知道,正统的页面开发,会使用layout的xml描述页面、自动生成类R来完成资源定位。能够给我们的UI开发带来强大的功能,也符合MVC的开发模式。而我现在要做的,是让页面生成、布局、内容显示、事件都用Java代码来完成。这样的目的其实也很明显,想通过自己的框架代码控制UI显示,可以用于服务端配置控制客户端显示,完成类似HTML的功能。
首先,根据常规,我们建立ActivityMain的主Activity。
然后,可以通过下面的代码的方式,设置UI控件;进行页面布局;利用反射进行事件绑定。
package org.studio.crusoe.sample.android;
import org.studio.crusoe.sample.android.util.Reflection;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.text.InputType;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
public class ActivityMain extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ScrollView sv = new ScrollView(this);
LinearLayout layout = new LinearLayout(this); // 线性布局方式
layout.setOrientation(LinearLayout.VERTICAL); // 控件对其方式为垂直排列
layout.setBackgroundColor(Color.GRAY);
TextView tv = new TextView(ActivityMain.this);
tv.setId(12341);
tv.setText("用户名:");
layout.addView(tv);
EditText et = new EditText(ActivityMain.this);
et.setId(12342);
et.setText("");
et.setSingleLine();
layout.addView(et);
TextView tv1 = new TextView(ActivityMain.this);
tv1.setId(12343);
tv1.setText("密码:");
layout.addView(tv1);
EditText et1 = new EditText(ActivityMain.this);
et1.setId(12344);
et1.setSingleLine();
et1.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
et1.setText("");
layout.addView(et1);
Button b = new Button(ActivityMain.this);
b.setId(12345);
b.setText("登录");
layout.addView(b);
try {
b.setOnClickListener((OnClickListener) Reflection
.createInstance("org.studio.crusoe.sample.android.ButtonClickListener"));
} catch (Exception e) {
// TODO: handle exception
}
layout.setBackgroundColor(0xff00ffff);
sv.addView(layout);
setContentView(sv);
}
}
在事件处理中,可以实现页面的变化和数据的传递
package org.studio.crusoe.sample.android;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
public class ButtonClickListener implements OnClickListener{
public void onClick(View v) {
Context context = v.getContext();
LinearLayout layout = (LinearLayout)v.getParent();
EditText et = (EditText)layout.findViewById(12342);
layout.removeAllViews();
TextView tv = new TextView(context);
tv.setText("欢迎你:" + et.getText());
layout.addView(tv);
}
}
由于Activity作为页面载体,目前掌握到信息,必须要在AndroidManifest.xml中声明,这样会影响自身框架的灵活性。目前的思路是选择确定数量的Activity,通过框架代码来完成页面展现。技术上应该问题不大。
现在有一个隐患,从现在情况来看,通过layout的配置方式,功能十分强大,比代码执行更好,这个让我想到了C#中WPF的XAML的思路。
另外的遗留问题是,需要规划设置多少个主Activity,并且实现对应的Intents,才能实现框架的灵活性。
页面效果:
1.初始化
2.跳转页面
分享到:
相关推荐
许多开发人员需要一本Android UI设计入门级教程,其能够同时针对移动UI的设计模式和碎片化解决方案进行深入分析。 《Android UI设计》面向创建移动应用的产品经理、设计师和开发者,系统讲解了从事Android UI设计...
《AndroidUI基础教程》是一本Android用户界面设计的基础入门图书。全书从最基础的技术概念开始介绍,深入讨论了UI设计的各项技术,涵盖了为应用程序创建UI的所有内容。本书不仅会告诉读者创建灵活布局的最佳方法,...
Android UI开发专题 Android UI开发专题(一) 之界面设计 近期很多网友对Android用户界面的设计表示很感兴趣,对于Android UI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的。本次专题分10节来讲述,有关...
Android UI 界面设计 移动APP
Android UI设计技巧 Android UI设计技巧Android UI设计技巧
android UI 源码 android入门样例 android面试热身 本人花了些时间准备的,献给爱android的粉丝们!
Android UI控件组件库集合【源码】 热门标签,流式布局,刮刮乐控件,侧滑控件,循环幻灯片控件,自动换行控件,下拉列表,圆角进度控件等常用UI控件组件合集
ANDROID UI设计工具,方便ANDROID UI设计
android UI设计技巧 1、该做什么,不该做什么 2、设计哲学和考量 3、你必须考虑的UI框架特例 4、新的UI设计模式 5、图标和准则
android UI开发推荐颜色 android UI开发推荐颜色 android UI开发推荐颜色
android UI界面开发图片,数量巨大,而且经典,觉得值得收藏 android UI界面开发图片,数量巨大,而且经典,觉得值得收藏
android UI 特效集合
Android UI设计心得。包括线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、框架布局(FrameLayout)、绝对布局(AbsoluteLayout)。其中AbsoluteLayout在Android SDK2.3.3之后已经...
精通ANDROID UI设计
Android UI设计工具+ 工具使用说明文档
androidUI设计器 自动生成.xml文件,很方便!
android ui设计 android源码 android开源项目 android项目代码 androidui设计,UI小练习
android UI 生成器 可以生成android的UI减轻工作,比eclipse内置的好多了,直接生成布局文件拉人项目直接使用
ViewFlow 相当于 Android UI 部件提供水平滚动的 ViewGroup,使用 Adapter 进行条目绑定。 8、Android 导航菜单 RibbonMenu 是 Android 上的一个导航菜单组件。就三个目标文件,菜单项直接在 XML 中定义,可添加...