`
wu.sheng
  • 浏览: 65876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android UI入门 (非常用方式,类HTML页面展现技术探索)

阅读更多

     开始的时候,要首先声明一下,这边文章,是一个以扫除开发技术障碍为目标的学习经验。并不适合正统的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.跳转页面

 

 

2
0
分享到:
评论

相关推荐

    《Android UI设计》PDF

    许多开发人员需要一本Android UI设计入门级教程,其能够同时针对移动UI的设计模式和碎片化解决方案进行深入分析。 《Android UI设计》面向创建移动应用的产品经理、设计师和开发者,系统讲解了从事Android UI设计...

    Android UI基础教程 高清带标签pdf

     《AndroidUI基础教程》是一本Android用户界面设计的基础入门图书。全书从最基础的技术概念开始介绍,深入讨论了UI设计的各项技术,涵盖了为应用程序创建UI的所有内容。本书不仅会告诉读者创建灵活布局的最佳方法,...

    Android UI开发专题

    Android UI开发专题 Android UI开发专题(一) 之界面设计 近期很多网友对Android用户界面的设计表示很感兴趣,对于Android UI开发自绘控件和游戏制作而言掌握好绘图基础是必不可少的。本次专题分10节来讲述,有关...

    Pro Android UI (Android UI设计开发高级教材)

    Android UI 界面设计 移动APP

    Android UI设计技巧

    Android UI设计技巧 Android UI设计技巧Android UI设计技巧

    android UI大全

    android UI 源码 android入门样例 android面试热身 本人花了些时间准备的,献给爱android的粉丝们!

    Android UI控件组件库集合【源码】

    Android UI控件组件库集合【源码】 热门标签,流式布局,刮刮乐控件,侧滑控件,循环幻灯片控件,自动换行控件,下拉列表,圆角进度控件等常用UI控件组件合集

    ANDROID UI设计工具

    ANDROID 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界面开发图片,数量巨大,而且经典,觉得值得收藏

    android UI 特效集合

    android UI 特效集合

    Android UI设计心得

    Android UI设计心得。包括线性布局(LinearLayout)、相对布局(RelativeLayout)、表格布局(TableLayout)、框架布局(FrameLayout)、绝对布局(AbsoluteLayout)。其中AbsoluteLayout在Android SDK2.3.3之后已经...

    精通ANDROID UI设计

    精通ANDROID UI设计

    Android UI设计工具

    Android UI设计工具+ 工具使用说明文档

    androidUI设计器

    androidUI设计器 自动生成.xml文件,很方便!

    android ui源码:自己设计的一个精美布局

    android ui设计 android源码 android开源项目 android项目代码 androidui设计,UI小练习

    Android UI 生成器

    android UI 生成器 可以生成android的UI减轻工作,比eclipse内置的好多了,直接生成布局文件拉人项目直接使用

    Android UI组件实例集合

    ViewFlow 相当于 Android UI 部件提供水平滚动的 ViewGroup,使用 Adapter 进行条目绑定。 8、Android 导航菜单 RibbonMenu 是 Android 上的一个导航菜单组件。就三个目标文件,菜单项直接在 XML 中定义,可添加...

Global site tag (gtag.js) - Google Analytics