界面编程与视图(view)组件——三种UI界面开发方式

Android中三种UI界面的开发方式

一、使用编程方式开发UI界面的例子:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ViewActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LinearLayout layout = new LinearLayout(this);
        super.setContentView(layout);
       layout.setOrientation(LinearLayout.VERTICAL);
        final TextView tv  = new TextView(this);
        Button btn = new Button(this);
        btn.setText(R.string.app_name);
        btn.setLayoutParams(new ViewGroup.LayoutParams(
                ViewGroup.LayoutParams.WRAP_CONTENT,
                ViewGroup.LayoutParams.WRAP_CONTENT));
        layout.addView(btn);
        layout.addView(tv);
        btn.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
                tv.setText("hello"+new java.util.Date());
            }
        });
    }
}

运行截图:

这里写图片描述

  使用代码创建UI界面,代码十分臃肿,不如xml布局文件来控制UI界面,不过在实际项目中更多采用代码和xml结合的方式控制UI界面,是界面更加美观、功能完善。

二、xml布局文件和Java代码混合控制UI界面例子——简单的图片浏览器

xml布局文件代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/root"
    android:orientation="vertical"
    tools:context="com.example.john.myapplication.MainActivity">
</LinearLayout>

Java代码:

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
    int[] images = new int[]{
            R.drawable.ajax,
            R.drawable.html,
            R.drawable.java,
            R.drawable.javaee,
    };
    int imaNum=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout main= (LinearLayout) findViewById(R.id.root);
        //创建ImageView组件
        final ImageView image = new ImageView(this);
        //将ImageView组件添加到LinearLayout布局中
        main.addView(image);
        //初始化显示的第一张图片
        image.setImageResource(images[0]);
        image.setOnClickListener(new View.OnClickListener(){
            @Override
            public void onClick(View v){
             //改变显示的图片        image.setImageResource(images[++imaNum%images.length]);
            }
        });
    }

}

运行截图

这里写图片描述
这里写图片描述

三、开发自定义View

想要把UI界面设置的更加美观,开发自定义的View非常非常的重要,还是新手小白的我在这方面还在学习中,不能提出什么好的建议,这里给一个我在学习中用到的例子——跟随手指动的小球

Java代码:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;

public class DrawView extends View {
    public float currentX=40;
    public float currentY=50;
    //定义并创建画笔
    Paint p = new Paint();
    public  DrawView(Context context){
        super(context);
    }
    public DrawView(Context context, AttributeSet set){
        super(context,set);
    }
    @Override
    public void onDraw(Canvas canvas){
        super.onDraw(canvas);
        //设置画笔颜色
        p.setColor(Color.RED);
        canvas.drawCircle(currentX,currentY,15,p);
    }
    //为该组件的触碰事件重写事件的处理办法
    @Override
    public boolean onTouchEvent(MotionEvent event){
        currentX=event.getX();
        currentY=event.getY();
        //通知当前的组件重画自己
        invalidate();
        //返回true表明该处理方法已经处理该事件
        return true;
    }
}

有两种方式可以使用这个我们自定义的组件

(1)直接通过代码使用自定义组件

Java代码:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        LinearLayout main= (LinearLayout) findViewById(R.id.root);
        //创建DrawView组件
        final DrawView draw = new DrawView(this);
        draw.setMinimumWidth(300);
        draw.setMinimumHeight(500);
        main.addView(draw);
      }
 }

(2)直接在xml使用自定义组件

xml代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/root"
    android:orientation="vertical"   tools:context="com.example.john.myapplication.MainActivity">
 <com.example.john.myapplication.DrawView
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>
</LinearLayout>

在布局文件中已经添加自定义组件了,因此,在Java代码中只需要写

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
 }

运行截图

这里写图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Google Android开发入门与实战的代码 1章 掀起你的盖头来——初识Android. 1 1.1 认识Android 1 1.2 Android的背景 2 1.2.1 Android的历史 2 1.2.2 Android的发展 2 1.3 我的Android我做主 2 1.3.1 开发基于Android平台的应用 3 1.3.2 参加Android开发者大赛 3 1.3.3 个人英雄主义再现——得到更多人的认可和尊重 3 1.3.4 获得应有的收益——Android Market 3 1.4 真实体验——Android模拟器 4 1.4.1 模拟器概述 4 1.4.2 模拟器和真机的区别 4 1.4.3 模拟器使用注意事项 4 1.5 更上一层楼——加入Android开发社区 5 1.6 本章小结 6 第2章 工欲善其事 必先利其器——搭建Android开发环境 7 2.1 开发Android应用前的准备 7 2.1.1 Android开发系统要求 7 2.1.2 Android软件开发包 7 .2.1.3 其他注意事项 8 2.2 Windows开发环境搭建 8 2.2.1 JDK、Eclipse、Android SDK软件安装 8 2.2.2 SDK的家在哪里——设定Android SDK Home 14 2.2.3 真的准备好了吗——开发环境验证 14 2.2.4 创建Android 虚拟设备(AVD) 15 2.3 Linux一族——Ubuntu开发环境搭建 17 2.3.1 Java、Eclipse和ADT插件安装 17 2.3.2 设定Android SDK Home 23 2.4 Mac OS一族——苹果开发环境搭建 24 2.5 本章小结 24 第3章 清点可用资本——Android SDK介绍 25 3.1 Android SDK 基础 25 3.2 深入探寻Android SDK的密码 25 3.2.1 Android SDK目录结构 25 3.2.2 android.jar及内部结构 27 3.2.3 SDK文档及阅读技巧 27 3.2.4 先来热热身——Android SDK例子解析 28 3.2.5 SDK提供的工具介绍 31 3.3 Android典型包分析 33 3.3.1 开发的基石——Android API核心开发包介绍 33 3.3.2 拓展开发外延——Android可选API介绍 34 3.4 本章小结 34 第4章 赚钱的市场——Android Market及应用发布 35 4.1 Google Market产生背景与目的 35 4.2 体验“选货”的乐趣——在G1上体验Market的使用 35 4.3 Android开发活动及特色应用 37 4.3.1 开发应用的领域 37 4.3.2 Android Market特色应用一览 38 4.4 你也可以做东家——申请Market账号 43 4.4.1 卖东西要先入伙——准备工作 43 4.4.2 入伙过程——申请 44 4.5 开张了——在Market上发布应用 45 4.5.1 发布时可能遇到的错误 45 4.5.2 卖东西也要签名——生成签名文件 46 4.5.3 打包、签名、发布应用 48 4.6 本章小结 51 第5章 千里之行 始于足下——第一个应用HelloWorld 52 5.1 HelloWorld应用分析 52 5.1.1 新建一个Android工程 52 5.1.2 填写工程的信息 52 5.1.3 编程实现 53 5.1.4 运行项目 54 5.2 调试项目 54 5.2.1 设置断点 54 5.2.2 Debug 项目 55 5.2.3 断点调试 55 5.3 本章小结 56 第6章 磨刀不误砍柴工——Android应用程序结构介绍 57 6.1 Android体系结构介绍 57 6.1.1 应用程序(Application) 57 6.1.2 应用程序框架(Application Framework) 58 6.1.3 库(Libraries)和运行环境(RunTime) 58 6.2 Android 应用程序组成 59 6.2.1 Activity介绍 59 6.2.2 Broadcast Intent Receiver介绍 60 6.2.3 Service介绍 61 6.2.4 Content Provider介绍 61 6.3 Android应用工程文件组成 61 6.4 本章小结 62 第7章 良好的学习开端——Android基本组件介绍 63 7.1 第一印象很重要——界面UI元素介绍 63 7.1.1 视图组件(View) 63 7.1.2 视图容器组件(Viewgroup) 63 7.1.3 布局组件(Layout) 64 7.1.4 布局参数(LayoutParams) 64 7.2 我的美丽我做主——Android中应用界面布局 64 7.2.1 实例操作演示 65 7.2.2 实例编程实现 66 7.3 不积跬步 无以至千里——常用widget组件介绍 75 7.3.1 创建widget组件实例 75 7.3.2 按钮(Button)介绍与应用 76 7.3.3 文本框(TextView)介绍与应用 77 7.3.4 编辑框(EditText)介绍与应用 79 7.3.5 多项选择(CheckBox)介绍与应用 81 7.3.6 单项选择(RadioGroup )介绍与应用 83 7.3.7 下拉列表(Spinner )介绍与应用 85 7.3.8 自动完成文本(AutoCompleteTextView ) 87 7.3.9 日期选择器(DatePicker)介绍与应用 89 7.3.10 时间选择器(TimePicker)介绍与应用 90 7.3.11 滚动视图(ScrollView)介绍与应用 91 7.3.12 进度条(ProgressBar)介绍与应用 92 7.3.13 拖动条(SeekBar)介绍与应用 93 7.3.14 评分组件(RatingBar)介绍与应用 94 7.3.15 图片视图(ImageView)介绍与应用 95 7.3.16 图片按钮(ImageButton)介绍与应用 96 7.3.17 切换图片(ImageSwitcher&Gallery) 96 7.3.18 网格视图(GridView)介绍与应用 99 7.3.19 标签(Tab)介绍与应用 101 7.4 友好的菜单——menu介绍与实例 102 7.4.1 实例操作演示.. 103 7.4.2 实例编程实现 103 7.5 Android应用的灵魂——Intent和Activity介绍与实例 106 7.5.1 实例操作演示 106 7.5.2 实例编程实现 106 7.6 用好列表,做好程序——列表(ListView)介绍与实例 111 7.6.1 实例程序演示 111 7.6.2 实例编程实现 112 7.7 友好地互动交流——对话框(Dialog)介绍与实例 119 7.8 温馨的提醒——Toast和Notification应用 127 7.8.1 实例操作演示 128 7.8.2 实例编程实现 129 7.9 本章小结 135 第8章 移动信息仓库——Android的数据存储操作 136 8.1 Android数据存储概述 136 8.2 轻轻地我保护——SharedPreferences存储 136 8.3 谁的文件,谁主宰——文件存储 140 8.4 打造自己的数据库存储——SQLite存储方式 141 8.4.1 Android中对数据库操作 141 8.4.2 完整地操作数据库——日记本实例 147 8.5 我的数据你来用——ContentProvider介绍 155 8.5.1 初识ContentProvider 155 8.5.2 使用ContentProvider读取系统数据 156 8.5.3 使用ContentProvider操作数据日记本实例 159 8.6 再学一招——网络存储 171 8.7 本章小结 173 第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 174 9.1 Android应用程序的核心——Intent 174 9.1.1 Intent基础 174 9.1.2 用Intent启动一个新的Activity 174 9.1.3 Intent 详细讲解 177 9.1.4 Android解析Intent实现 179 9.2 用广播告诉你——利用Intent来广播(BroadCast)事件 180 9.2.1 实现Android中的广播事件 180 9.2.2 BroadCast Receiver介绍 181 9.3 应用实例详解 181 9.3.1 程序操作演示 182 9.3.2 实例编程实现 182 9.4 本章小结 186 第10章 一切为用户服务——Service应用实例 187 10.1 认识Service 187 10.2 使用Service 188 10.3 Service的生命周期 194 10.4 实例学习Service 194 10.4.1 精彩实例一——定时提醒 194 10.4.2 精彩实例二——音乐播放器 198 10.5 本章小结 201 第11章 循序渐进——开发Android应用的基本步骤 202 11.1 兵马未动 粮草先行——应用规划及架构设计 202 11.2 应用开发步骤 202 11.2.1 界面设计始终是第一位——实现UI 203 11.2.2 必备的动力源泉——数据操作和存储 203 11.2.3 华丽转身——实现多页面跳转 203 11.2.4 始终为用户做好服务——增加Service 203 11.2.5 细节决定成败——完善应用细节 203 11.3 成功就在眼前——应用测试和发布 204 11.3.1 只欠东风——应用测试 204 11.3.2 可以赚钱了——发布到Android Market 204 11.4 本章小结 204 第12章 Android综合案例一——RSS阅读器实例 205 12.1 RSS介绍 205 12.1.1 RSS基础 205 12.1.2 RSS的历史 205 12.1.3 RSS语法介绍 206 12.2 SAX介绍 207 12.2.1 SAX基础 207 12.2.2 使用SAX的作用 207 12.2.3 怎样使用SAX 207 12.3 RSS阅读器设计 209 12.3.1 RSS阅读器功能设计 209 12.3.2 RSS阅读器UI和交互流程设计 209 12.4 RSS阅读器的实现 210 12.4.1 程序实体解析 210 12.4.2 实现一个自己的ContentHandler 214 12.4.3 Activity的实现 217 12.5 本章小结 220 第13章 Android综合案例二——基于Google Map开发个人移动地图 221 13.1 项目UI规划 221 13.2 数据存储实现 222 13.2.1 设计数据库及表结构 222 13.2.2 设计SharePreference 存储 223 13.3 项目实现流程 223 13.3.1 创建项目工程 223 13.3.2 项目各功能及界面实现 224 13.3.3 实现数据存取 247 13.3.4 实现Service 252 13.3.5 应用流程整体实现 254 13.3.6 后续开发完善 255 13.4 项目程序演示 255 13.5 项目程序签名、打包和发布 257 13.6 本章小结 259 第14章 Android综合案例三——基于Android的豆瓣网(Web 2.0)移动客户端开发 260 14.1 关于豆瓣网和豆瓣网API 260 14.1.1 豆瓣网介绍 260 14.1.2 豆瓣网API介绍 261 14.1.3 豆瓣网API认证 261 14.1.4 豆瓣网API快速入门 264 14.1.5 豆瓣网API Java库介绍 265 14.2 豆瓣网(Web 2.0)客户端设计 268 14.2.1 客户端功能规划设计 268 14.2.2 UI和交互流程设计 268 14.2.3 数据存储设计 270 14.3 豆瓣网(Web 2.0)客户端实现 270 14.3.1 申请API Key 270 14.3.2 Activity实现 271 14.4 本章小结 282 第15章 Android综合案例四——在线音乐播放器 283 15.1 关于YOBO和YOBO API 283 15.1.1 YOBO简介 284 15.1.2 YOBO功能特点 284 15.1.3 YOBO API介绍 284 15.2 在线播放器架构设计 285 15.2.1 在线播放器功能规划设计 285 15.2.2 在线播放器UI设计 285 15.2.3 在线播放器数据存储设计 286 15.3 在线播放器的编程实现 286 15.3.1 申请API Key 286 15.3.2 基础功能实现 287 15.3.3 实现Activity 290 15.3.4 实现Service 306 15.3.5 后续开发展望 310 15.4 在线音乐播放器应用演示 310 15.5 在线音乐播放器应用打包、签名和发布 311 15.6 本章小结 311 第16章 Android综合案例五——手机信息查看助手 312 16.1 手机信息查看助手功能规划和可行性分析 312 16.1.1 手机信息查看助手功能规划 312 16.1.2 手机信息查看助手可行性分析 312 16.2 手机信息查看助手功能实现 313 16.2.1 手机信息查看助手主界面 313 16.2.2 查看系统信息实现 316 16.2.3 查看硬件信息 320 16.2.4 查看软件信息 324 16.2.5 获取运行时信息 326 16.2.6 文件浏览器 328 16.2.7 项目的细节完善 331 16.3 手机信息查看助手功能展望 332 16.4 项目的打包、签名和发布 332 16.5 本章小结 333 第17章 芝麻开门——Android底层开发和移植概述 334 17.1 Android原始码下载 334 17.2 实机测试 335 17.2.1 Neo FreeRunner 介绍 335 17.2.2 烧录androidfs.jffs2 336 17.3 Android移植技术概论 337 17.3.1 Android底层技术的重要性 337 17.3.2 Android移植项目介绍 338 17.3.3 Android的技术优点... 340
开发基于Android的背单词app时,设计良好的用户界面(UI)对于提供良好的用户体验至关重要。以下是一些建议来设计背单词app的UI界面: 1. 欢迎界面:在应用启动时,可以显示一个欢迎界面,包括应用的Logo和简短的欢迎词,给用户一个良好的第一印象。 2. 登录/注册界面:如果你希望用户可以创建个人账户,你可以设计一个登录/注册界面,包括用户名和密码输入框,以及相应的登录和注册按钮。 3. 主界面:主界面应该提供简洁清晰的导航菜单,以便用户可以轻松访问不同的功能模块。你可以使用底部导航栏、侧边栏或标签栏来实现这一点。 4. 单词列表界面:这个界面应该显示用户已添加的单词列表。你可以使用列表视图或卡片视图来展示单词,并提供一些过滤或排序选项,方便用户查找和管理单词。 5. 单词详情界面:当用户点击列表中的某个单词时,应该跳转到单词详情界面。这个界面应该显示单词的详细信息,包括释义、例句、发音等。你还可以提供一些学习工具,比如记忆卡片、拼写测试等。 6. 学习统计界面:这个界面应该显示用户的学习进度和统计信息,比如总学习时间、已掌握的单词数量等。可以使用图表或进度条来可视化这些数据,帮助用户了解自己的学习情况。 7. 设置界面:你可以提供一个设置界面,允许用户自定义一些应用的行为,比如通知设置、学习计划设定等。 8. 主题和样式:选择一种合适的主题和配色方案,以保证应用的整体风格一致且美观。注意字体大小和对比度,以确保良好的可读性。 以上是一些建议来设计背单词app的UI界面。你可以根据自己的需求和用户群体的特点进行定制化设计,以提供一个易用、美观和功能丰富的用户界面

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值