Android实现仿QQ登录可编辑下拉菜单
在Android里,直接提供的Spinner控件虽然可以实现下拉菜单的效果,但其效果并不理想,很多时候我们需要类似手机QQ那样既可以在文本框中直接输入编辑文字,可以在下拉菜单中选中或者删除菜单选项,并且下拉菜单并不是以遮罩整个手机屏幕方式,而是以浮动在屏幕上的效果出现。下面呢,就来实现一下这些效果。
最后效果:
此次主要以EdiText、PopupWindow、ListView及Adapter来实现这种下拉效果。具体实现步骤就不一步步详细介绍了,直接贴完整代码吧,注释比较详细,相信都能看得懂。
Activity代码:
package com.zw.select;
import java.util.ArrayList;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.Message;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import https://www.sodocs.net/doc/cb12662488.html,youtParams;
import android.widget.ListView;
import android.widget.PopupWindow;
//主界面Activity
public class SelectActivity extends Activity implements Callback {
//PopupWindow对象
private PopupWindow selectPopupWindow= null;
//自定义Adapter
private OptionsAdapter optionsAdapter = null;
//下拉框选项数据源
private ArrayList
//下拉框依附组件
private LinearLayout parent;
//下拉框依附组件宽度,也将作为下拉框的宽度
private int pwidth;
//文本框
private EditText et;
//下拉箭头图片组件
private ImageView image;
//恢复数据源按钮
private Button button;
//展示所有下拉选项的ListView
private ListView listView = null;
//用来处理选中或者删除下拉项消息
private Handler handler;
//是否初始化完成标志
private boolean flag = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(https://www.sodocs.net/doc/cb12662488.html,yout.select);
}
/**
* 没有在onCreate方法中调用initWedget(),而是在onWindowFocusChanged方法中调用,
* 是因为initWedget()中需要获取PopupWindow浮动下拉框依附的组件宽度,在onCreate方法中是无法获取到该宽度的
*/
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
while(!flag){
initWedget();
flag = true;
}
}
/**
* 初始化界面控件
*/
private void initWedget(){
//初始化Handler,用来处理消息
handler = new Handler(SelectActivity.this);
//初始化界面组件
parent = (LinearLayout)findViewById(R.id.parent);
et = (EditText)findViewById(R.id.edittext);
image = (ImageView)findViewById(R.id.btn_select);
//获取下拉框依附的组件宽度
int width = parent.getWidth();
pwidth = width;
//设置点击下拉箭头图片事件,点击弹出PopupWindow浮动下拉框
image.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(flag){
//显示PopupWindow窗口
popupWindwShowing();
}
}
});
//初始化PopupWindow
initPopuWindow();
button = (Button)findViewById(R.id.refresh);
//设置点击事件,恢复下拉框列表数据,没有什么作用,纯粹是为了方便多看几次效果而设置
button.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
initDatas();
optionsAdapter.notifyDataSetChanged();
}
});
}
/**
* 初始化填充Adapter所用List数据
*/
private void initDatas(){
datas.clear();
datas.add("北京");
datas.add("上海");
datas.add("广州");
datas.add("深圳");
datas.add("重庆");
datas.add("青岛");
datas.add("石家庄");
}
/**
* 初始化PopupWindow
*/
private void initPopuWindow(){
i nitDatas();
//PopupWindow浮动下拉框布局
View loginwindow =
(View)this.getLayoutInflater().inflate(https://www.sodocs.net/doc/cb12662488.html,yout.options, null);
listView = (ListView) loginwindow.findViewById(R.id.list);
//设置自定义Adapter
optionsAdapter = new OptionsAdapter(this, handler,datas);
listView.setAdapter(optionsAdapter);
selectPopupWindow = new PopupWindow(loginwindow,
pwidth,LayoutParams.WRAP_CONTENT, true);
selectPopupWindow.setOutsideTouchable(true);
//这一句是为了实现弹出PopupWindow后,当点击屏幕其他部分及Back键时PopupWindow会消失,
//没有这一句则效果不能出来,但并不会影响背景
//本人能力极其有限,不明白其原因,还望高手、知情者指点一下
selectPopupWindow.setBackgroundDrawable(new BitmapDrawable()); }
/**
* 显示PopupWindow窗口
*
* @param popupwindow
*/
public void popupWindwShowing() {
//将selectPopupWindow作为parent的下拉框显示,并指定selectPopupWindow 在Y方向上向上偏移3pix,
//这是为了防止下拉框与文本框之间产生缝隙,影响界面美化
//(是否会产生缝隙,及产生缝隙的大小,可能会根据机型、Android系统版本不同而异吧,不太清楚)
selectPopupWindow.showAsDropDown(parent,0,-3);
}
/**
* PopupWindow消失
*/
public void dismiss(){
selectPopupWindow.dismiss();
}
/**
* 处理Hander消息
*/
@Override
public boolean handleMessage(Message message) {
Bundle data = message.getData();
switch(message.what){
case 1:
//选中下拉项,下拉框消失
int selIndex = data.getInt("selIndex");
et.setText(datas.get(selIndex));
dismiss();
break;
case 2:
//移除下拉项数据
int delIndex = data.getInt("delIndex");
datas.remove(delIndex);
//刷新下拉列表
optionsAdapter.notifyDataSetChanged();
break;
}
return false;
}
}
自定义适配器Adapter代码:
package com.zw.select;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import https://www.sodocs.net/doc/cb12662488.html,youtInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
//自定义适配器Adapter
public class OptionsAdapter extends BaseAdapter {
private ArrayList
private Activity activity = null;
private Handler handler;
/**
* 自定义构造方法
* @param activity
* @param handler
* @param list
*/
public OptionsAdapter(Activity activity,Handler
handler,ArrayList
t his.activity = activity;
t his.handler = handler;
t his.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
//下拉项布局
convertView =
LayoutInflater.from(activity).inflate(https://www.sodocs.net/doc/cb12662488.html,yout.option_item, null);
holder.textView = (TextView)
convertView.findViewById(R.id.item_text);
holder.imageView = (ImageView)
convertView.findViewById(R.id.delImage);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.textView.setText(list.get(position));
//为下拉框选项文字部分设置事件,最终效果是点击将其文字填充到文本框
holder.textView.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
Message msg = new Message();
Bundle data = new Bundle();
//设置选中索引
data.putInt("selIndex", position);
msg.setData(data);
msg.what = 1;
//发出消息
handler.sendMessage(msg);
}
});
//为下拉框选项删除图标部分设置事件,最终效果是点击将该选项删除
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Message msg = new Message();
Bundle data = new Bundle();
//设置删除索引
data.putInt("delIndex", position);
msg.setData(data);
msg.what = 2;
//发出消息
handler.sendMessage(msg);
}
});
return convertView;
}
}
class ViewHolder {
TextView textView;
ImageView imageView;
}
主界面布局select.xml文件:
xmlns:android="https://www.sodocs.net/doc/cb12662488.html,/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#EEEED1" > android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal"android:layout_marginTop="50dp" android:layout_marginLeft="30dp"> android:layout_height="40dp"android:background="@drawable/bg1" android:paddingLeft="3dp"/> android:src="@drawable/img1"android:scaleType="fitXY"/>
PopupWindow浮动下拉框布局options.xml文件:
xmlns:android="https://www.sodocs.net/doc/cb12662488.html,/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" > android:layout_height="wrap_content" android:cacheColorHint="#00000000">
下拉选项布局option_item.xml文件:
xmlns:android="https://www.sodocs.net/doc/cb12662488.html,/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#235654" > android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_vertical" android:minHeight="40dp" > android:src="@drawable/del"android:textSize="18sp" android:layout_alignParentRight="true" android:layout_marginRight="10dp"/> android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_toLeftOf="@id/delImage" android:paddingLeft="5dp" android:layout_alignParentLeft="true">
到此代码及布局文件基本都贴完了。哦,对了,我是在Android 2.2 测试运行的。本人对Android学习、了解十分有限,而且各种文件、变量、方法等等命名也很不规范,所以代码肯定有很多不足之处,还请各位海涵!当然,更希望各位能不吝赐教,本人将满怀荣幸与感激!
通信实训报告 -Android移动平台开发 学院:信息工程学院 班级: 学号: 姓名:
实训内容: 一.1.Andriod的简介 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android 2.4 Gingerbread 和Android 3.0 Honeycomb。 Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。 Android早期由原名为"Android"的公司开发,谷歌在2005年收购"Android.Inc"后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张,在智能MP4方面也有较大发展。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌的手机G1由HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:魅族(M9),华为、中兴、联想、蓝魔等。 2.Android构架图 二.1软件下载 Android SDK,网址是https://www.sodocs.net/doc/cb12662488.html,. JDK的下载地址https://www.sodocs.net/doc/cb12662488.html,/javase/downloads/widget/jdk6.jsp。Eclipse的下载网址是https://www.sodocs.net/doc/cb12662488.html,/downloads/ 2.Android开发环境搭建
Android简单登录界面 设计一个登陆界面: 允许用户输入用户名,密码; 用户点击“Login”之后,如果用户名为admin, 密码为123则显示“登陆成功”;如果用户名密码其中之一不正确,红色字体显示“登陆失败!” 首先我们来建立一个新的项目:
图标那一步就随便选吧,下一步: 这一步与上次有点不同,这次我们不要ADT 帮我们创建任何的Activity,我们只需要一个空的项目。 点击Finish后,我们会发现,项目文件视图下,与上次的不一样,src, res/layout 是空的,这次需要我们自己去添加了。 首先来明确一下我们现在的目标: 建立一个包含登录框的界面,并将它显示在我们的手机(模拟器)上。 建立一个界面的主要步骤是什么呢?主要有以下几步: ?在res/layout下创建布局文件; ?在src下创建Activity子类,并将布局文件与这个Activity联系起来。 ?在AndroidManifest.xml程序配置文件中,添加Activity的声明。 我们先来 1. 创建布局文件: 在Eclipse项目文件中选中layout 文件夹,在工具栏里点击下面图标 在弹出的窗口,填上这个xml布局文件的文件名,Root Element 根节点就选择Linearlayout 即可
点击下一步,这一步是选择更多配置属性的,暂且不用理会,直接点击Finish。 我们发现,在res/layout 下面多了一个login.xml文件,同时Android 的Layout 编辑器也把它打开了。 切换到“source”代码视图,今天我们不用“所见即所得”的傻瓜拖拽方式。 我们看到xml代码是这样的:
这样的话就比较容易实现了,再看一下整体的Layout布局情况: xml布局文件如下:注意层次的嵌套。先是一个RelativeLayout,它有两个子布局,RelativeLayout和LinearLayout。 android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:padding="10.0dip" android:singleLine="true" android:text="设置" android:textColor="@color/white" android:textSize="15dp" />
基于Android系统的App界面设计 智能手机时代的来临改变了大多数人的生活习惯,时至今日智能手机已经成为了人们工作生活中的一部分,在工作生活中发挥着重要的作用。App作为智能手机应用程序的核心,构建以用户体验为核心的页面设计是智能手机App设计的核心与要点,同时也是满足用户使用需求的重要途径与方式。现今的智能手机App主要分为IOS与Android两大市场,与IOS的封闭不同的是Android系统具有极强的开放性,而这一开放性在为Android系统App带来无限可能的同时也使得基于Android系统所开发的App界面本身缺乏统一的规范,从而造成基于Android系统所开发的App界面具有极大的开放性。新时期为做好基于Android 系统App的设计需要从情感、认知以及感官三个层面入手做好基于Android系统的App界面的开发设计,使之具有良好的用户使用体验。 标签:Android系统;App;界面设计 Abstract:The advent of the smart phone era has changed the habits of most people. Today,smart phone s have become a part of people’s work and life,and play an important role in the work and life. As the core of smart phone applications,App plays an important role in the work and life. The design of page based on user experience is the core and key point of the App design of smart phone,and it is also an important way and way to meet the needs of users. Today’s smartphone App is mainly divided into IOS and Android two major markets,Different from the closure of IOS,Android system has a very strong openness,and this openness not only brings infinite possibility to App of Android system,but also makes the App interface based on Android system lack of unified specification. As a result,the App interface based on Android system is very open. In order to do well the design of App based on Android system in the new period,it is necessary to develop and design the App interface based on Android system from the three aspects of emotion,cognition and sense organ,to make it have a good user experience. Keywords:Android system;App;interface design 前言 Android系统是与IOS系统所并行的应用于智能手机中的两大智能系统,在基于Android系统App界面开发的过程中受多种因素的影响使得一些App的界面具有很大的不协调性,从而影响了广大用户的使用体验。本文在分析影响智能手机App界面设计因素的基础上对如何做好基于Android系统的App界面设计进行分析阐述。 1 影响智能手机App界面设计的因素分析 智能手机App是智能手机的灵魂,用户结合自身需求可以下载安装自身所
实验报告 课程名称 : Android应用程序设计 实验名称 :简单的用户注册登录系统 学院 : 电子信息工程学院 专业 : 计算机科学与技术 班级 : 姓名 : 学号 : 时间 : 目录 第一章设计背景 1.1引言 (3) 1.2设计目的 (3) 1.3 设计要求 (3) 1.4 开发运行环境 (3) 第二章需求分析 2.1技术可行性 (4) 2.2网络需求分析 (4) 2.3运行环境需求分析 (4) 2.4用户需求分析 (4) 第三章具体方案设计 3.1 注册登录界面系统介绍 (5) 3.2 流程图 (5) (6) 3.3详细界面设计 3.3.1 注册界
面........................................................... . (6) 3.3.2 登录界面............................................................ (7) 3.4 项目目录结构图.......................................................... (8) 3.5 系统界面组件的生成...................................................... (8) 3.6 实现过程及代码 3.6.1 注册界面的生成....................................................... .. (9) 3.6.2 登录界面的生成.................................................... . (10) 3.6.3 用XML实现用户界面优缺点................................................. 12 3.7 程序代码 3.7.1 Zhuce.java (12) 3.7.2 denglu.java (14) 第四章实验结果截图 4.1 填写注册信息................................................................. 16 4.2 注册成功..................................................................... 16 4.3 填写登录信息................................................................. 17 4.4 登录成功..................................................................... 18 4.5 填写密码不一致时............................................................. 19 第五章软件的系统测试 5.1 系统测试的原则.............................................................. 20 5.2 测试环境..................................................................... 20 第六章实验总结 一、设计背景 1.1 引言 用户注册登录程序在网上经常可见。一般都是在Web主页上提供一个用户名及密码文本框,通过收集用户输入的信息,与数据库中的记录进行判断,若正确则进入相关页面;若不正确或没有该记录,则提示出错信息。现在很多的网站的浏览都需要注册成为会员才可以使用更多的功能,所以需要我们自己注册成为网站会员方可使用更多功能。类似微博、百度、人人等。 如果要完成用户登录,则一定要有一个表单页面,此页面可以输入登录用户名和密码。但是在登录之前也必须有过注册方可进行登录,因此也需要有一个注册页面来完成
Android程序用户界面的设计与开发 摘要 安卓智能凭借其优越性和易操作性,越来越大众化。然而,为了脱离庸俗化和单一化,安卓程序用户界面的美观设计越来越显重要。可以说,谁设计出引人注目的安卓程序用户界面,设计出具有极强的用户个人主义色彩魅力的界面,谁就占领市场。 关键词:安卓,界面,设计 一 .现况 目前,智能手机已经成为人们生活的必备工具,随着手机4G时代的到来,智能手机将会与我们的生活结合的更加紧密,得到更广泛的应用,因此围绕智能手机的相关应用产品的研发也将得到了快速的发展。特别是安卓系统的开发。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。 因此,安卓手机相关应用产品界面设计的优劣,是目标用户是否使用该手机以及相关应用软件的重要环节,所以近来围绕安卓手机用户体验设计的研究越来越多,智能手机交互界面动效设计研究就是其中的一项。安卓手机界面设计的动效,是界面从一个静止界面转换成另外一个静止界面之间的动态的转场效果,通过这样的动态转场效果是可以增进使用者对于某款手机或者某个软件以及游戏与娱乐项目的兴趣,起到促进手机、手机应用软件和游戏娱乐项目的销售,赢得客户青睐和信任的
作用。原先,安卓手机的界面只有简单的链接,是因为“动效”对手机硬件的运算速度要求较高。然而,随着4G智能手机的普及,手机的硬件运算速度大幅提升,内、外存储器的容量加大,致使手机动效的实现成为可能。 现在,有关安卓程序用户界面的开发的设计师还在少数,特备是专业的前端UI设计大师更是寥寥无几。毕竟动效设计具有一定的艺术性和技术性的难度。而如若掌握一定的安卓网页美工的知识并将之投入工作中,在目前市场上是极具优越性的。 现在介绍下如何运用Bootstrap来快速设计出简约美观的安卓程序界面。 二.Bootstrap的应用 2.1.Bootstrap的介绍 Bootstrap是Twitter的设计师Mark Otto和Jacob Thornton合作开发,是目前很受欢迎的前端框架。它是基于HTML、CSS、JAVASCRIPT 的,简洁灵活,使得 Web 开发更加快捷。它是一个CSS/HTML框架。 下面是基于bootstrap的ace一组控件的封装框架的截图: 而安卓版本的bootstrap样式库的显示效果如下:
临沂大学信息学院 学生上机(实验)报告 课程名称:Android移动智能开发技术 指导教师: 学生姓名: 学号: 一、实验名称 界面登录设计实验 二、实验内容(具体的程序)
1、建两个ACTIVITY,实现从界面一跳转到界面二。 2、在主界面添加按钮等控件。 3、在MainActivity里写代码
package com.example.and; import android.os.Bundle; import android.app.Activity; import android.content.DialogInterface; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import https://www.sodocs.net/doc/cb12662488.html,poundButton; import https://www.sodocs.net/doc/cb12662488.html,poundButton.OnCheckedChangeListener; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends Activity { Button btn; OnClickListener lis; EditText etname; EditText etpwd; CheckBox ch1; CheckBox ch2; SharedPreferences sf ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.sodocs.net/doc/cb12662488.html,yout.activity_main); btn =(Button) findViewById(R.id.btnlogin); etname = (EditText)findViewById(R.id.etname); etpwd = (EditText)findViewById(R.id.etpwd); ch1 = (CheckBox)findViewById(R.id.checkBox1); ch2 = (CheckBox)findViewById(R.id.checkBox2); sf = getSharedPreferences("my",Activity.MODE_PRIVA TE); if(sf.getBoolean("ch1", false)==true)
d r o i d简单的登陆界面 的设计开发 内部编号:(YUUT-TBBY-MMUT-URRUY-UOOY-DBUYI-0128)
通信实训报告 -Android移动平台开发 学院:信息工程学院 班级: 学号: 姓名: 实训内容: 一.的简介 Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android Gingerbread和Android Honeycomb。 Android是基于Linux开放性内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。 Android早期由原名为"Android"的公司开发,谷歌在2005年收购""后,继续对Android系统开发运营,它采用了软件堆层(software stack,又名软件叠层)的架构,主要分为三部分。底层 Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。2011年初数据显示,仅正式上市两年的操作系统Android已经超越称霸十年的塞班系统,使之跃居全球最受欢迎的智能手机平台。现在,Android系统不但应用于智能手机,也在平板电脑市场急速扩张,在智能MP4方面也有较大发展。采用Android系统主要厂商包括台湾的HTC,(第一台谷歌
的手机G1由HTC生产代工)美国摩托罗拉,SE等,中国大陆厂商如:魅族(M9),华为、中兴、联想、蓝魔等。 构架图 二.1软件下载 Android SDK,网址是 . JDK的下载地址。 Eclipse的下载网址是 开发环境搭建 第一步:下载Android SDK 网址是 ./sdk/ 。 Android 之前Google提供了Android SDK开发的完整下载,在Android 之后Google只提供了安装工具在线安装。 单击“”链接进行SDK下载,下载该文件后解压该文件到操作系统的任意目录下。打开目录找到SDK 可执行文件,双击执行该文件。 选择"Available Packages",选择想安装的版本(我是全选了,省事),然后单击“Install Selected”->选择“Accept All”,再单击“Install Accepted”就可以在线安装了。 提示:如果你的“Available Packages”右侧的地址不能打开,请选择左侧列表的“Setting”选项,在右侧的设置中勾选“Fore https:...” 第二步:安装JDK A下载JDK。Android SDK需要JDK5 以上的版本。JDK6的下载地址。 B安装JDK。下载完成后进行正常双击、安装,这里就不说了。。。 C配置Java环境变量
1Android 注册界面实例 在Surfaceview中如何实现两个或者多个Activity之间的切换与数据交互,为了更形象一些我做了一个游戏登录界面的demo,其中对于输入界面的布局这些我也是随意写了下,主要是实现功能并没有花时间去美化,所以大家可以自己去xml或者代码中去改变布局,每个小组件的宽高等。 两个activity之间切换我概括的分为两步: 1. 代码实现切换操作。 2.配置中声明另外一个acitivity! 我们先看第一步:这里是触屏处理中的一段代码: Java代码:Java代码publicbooleanonTouchEvent(MotionEventevent){ 2 3floatpointx=event.getX(); 4floatpointy=event.getY(); 5if(pointx>bp_x+14&&pointx 全局代码public class IPAddress { public static final String IP="http://202.118.89.148:8080/Education/";} 登录界面:java代码 public class LoginActivity extends Activity { private static Button loginButton,registerButton ,OutButton; private static EditText username,password; private ButtonListener b1=new ButtonListener(); private Intent intent; private String info=""; private String s; private Builder builder; private ExitAll gol=new ExitAll(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(https://www.sodocs.net/doc/cb12662488.html,yout.login); ExitAll.getInstance().addActivity(this); loginButton=(Button)findViewById(R.id.btn_Login); loginButton.setOnClickListener(b1); registerButton=(Button)findViewById(R.id.btn_Reset); registerButton.setOnClickListener(b1); username=(EditText)findViewById(R.id.et_staff_no); password=(EditText)findViewById(R.id.et_password); OutButton=(Button)findViewById(R.id.btn_Out); OutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { builder.setTitle("确定退出?”); builder.setNegativeButton("确定", new android.content.DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub dialog.dismiss(); package https://www.sodocs.net/doc/cb12662488.html,.ui; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.os.Bundle; import android.text.TextUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.widget.ImageButton; import android.widget.Toast; public class LoginActivity extends Activity { private EditText username, pass, url; CheckBox remberPass, autoLogin; Button login; SharedPreferences sp; Editor ed; ImageButton ins; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(https://www.sodocs.net/doc/cb12662488.html,yout.login); username = (EditText) findViewById(R.id.et_username); pass = (EditText) findViewById(R.id.et_password); url = (EditText) findViewById(R.id.et_url); remberPass = (CheckBox) findViewById(R.id.remeber); autoLogin = (CheckBox) findViewById(R.id.autoLogin); login = (Button) findViewById(R.id.login); ins = (ImageButton) findViewById(R.id.shuoming); ins.setOnClickListener(new OnClickListener() { 常用系统控件界面大合集 今天我用自己写的一个Demo 和大家详细介绍一个Android开发中遇到的一些常用系统控件的使用技巧。 1.文本框TextView TextView的作用是用来显示一个文本框,下面我用两种方式为大家呈现TextView,第一种是通过xml布局文件呈现,第二种是通过代码来呈现,由此可见Android 的界面非 常灵活。 1.public class TextViewActivity extends Activity { 2. @Override 3. protected void onCreate(Bundle savedInstanceState) { 4. setContentView(https://www.sodocs.net/doc/cb12662488.html,yout.textview); 5. 6. LinearLayout ll = (LinearLayout) findViewById(R.id.textviewll); 7. TextView textView = new TextView(this); 8. //设置显示文字 9. textView.setText("从代码中添加一个TextView"); 10. //设置显示颜色 11. textView.setTextColor(Color.WHITE); 12. //设置显示字体大小 13. textView.setTextSize(18); 14. //设置显示背景颜色 15. textView.setBackgroundColor(Color.BLUE); 16. //设置锚点位置 17. textView.setGravity(Gravity.CENTER_VERTICAL|Gravity.CENTER_ HORIZONTAL); android登录界面记住多组账号与密码,读取手机上的多媒体文件,Android下用SDL2实现一个简单的五子棋,AndroidManifest配置文件详解和android电话应用基础知识点 android读取联系人,搜索联系人 读取手机唱片集内歌曲并播放,工具类,非常方便的跳转到其它界面,工具类,非常方便的跳转到其它界面,将序列化的集合保存到SD卡,利用字体库实现TextView显示图片 jQuery(document).ready(function(){ var validatorForJquery = new ValidatorForJquery(); window.valid = validatorForJquery.valid; window.formValid = validatorForJquery.formValid; jQuery("form").each(function(){ var modelFormXML_URL = $(this).attr("modelFormXML"); if(modelFormXML_URL){ var groupName = modelFormXML_URL.split("#"); if(groupName){ $.ajax({ type: "post", : modelFormXML_URL, async:false, dataType:'xml', success: function(xml){ jQuery(xml).children().each(function(){ jQuery(this).children().each(function(){ //form循环 jQuery(this).children().each(function(){//group循环 if(jQuery(this).attr("name") == groupName){ validatorForJquery.xmlToHTML(this,modelFormXML_URL.replace(/\W/g,"_")).appendTo ("body"); } }); }); }); window.formWorn = validatorForJquery.fn; } }); }else{ $.ajax({ type: "post", : modelFormXML_URL, 1.用户登陆界面 2.用户注册界面 3.查找学生信息并对学生进行操作 4.添加用户界面 5.用户管理界面 二、源代码 1. LoginActivity.java package org.liming.stumanage; public class LoginActivity extends Activity implements OnClickListener { private EditText login_uname, login_pwd; private SQLiteOpenHelper helper; private SQLiteDatabase db; private Intent intent; private ListPopupWindow lpw; private List 1、android分辨率 Android的多分辨率,一向是设计师和开发者非常头疼的事儿。尽管如此,对于多分辨造成的复杂问题,也是大家要优先解决的。Android支持多种不同的dpi模式:ldpi 、mdpi 、hdpi 、xhdpi 、xxhdpi 、xxxhdpi 注意,ppi、dpi 是密度单位,不是度量单位: * ppi (pixels per inch):图像分辨率(在图像中,每英寸所包含的像素数目) * dpi (dots per inch):打印分辨率(每英寸所能打印的点数,即打印精度) dpi主要应用于输出,重点是打印设备上;ppi对于设计师应该比较熟悉,photoshop 画布的分辨率常设置为72像素/英寸,这个单位其实就是ppi 。尽管概念不同,但是对于移动设备的显示屏,可以看作ppi=dpi 。 ppi的运算方式是:PPI = √(长度像素数2 + 宽度像素数2)/ 屏幕对角线英寸数。即:长、宽各自平方之和的开方,再除以屏幕对角线的英寸数。 以iphone5为例,其ppi=√(1136px2 + 640px2)/4 in=326ppi(视网膜Retina屏)对于android手机,一个不确切的分法是,720 x 1280 的手机很可能接近320 dpi (xhdpi 模式),480 x 800 的手机很可能接近240 dpi (hdpi模式),而320 x 480 的手机则很接近160 dpi(mdpi模式)。 来自友盟指数2014年3月份的数据: 480 x 800的手机占比最高为31.9%,720 x 1280的手机占比为16.5%位居第二,而240 x 320的手机占比最少为1.0% 。xxdhpi模式的高分辨率1080 x 1920手机占比也越来越高,目前为6.1% 。 2、单位换算方法 android开发中,文字大小的单位是sp,非文字的尺寸单位用dp,但是我们在设计稿用的单位是px。这些单位如何换算,是设计师、开发者需要了解的关键。 * dp:Density-independent pixels,以160PPI屏幕为标准,则1dp=1px。dp和px的换算公式:dp*ppi/160 = px。对于320ppi的屏幕,1dp x 320ppi/160 = 2px。 * sp:Scale-independent pixels,它是安卓的字体单位,以160PPI屏幕为标准,当字体大小为100%时,1sp=1px。sp 与px 的换算公式:sp*ppi/160 = px。对于320ppi 的屏幕,1sp x 320ppi/160 = 2px。 简单理解的话,px(像素)是我们UI设计师在PS里使用的,同时也是手机屏幕上所显示的,dp是开发写layout的时候使用的尺寸单位。 为什么要把sp和dp代替px?原因是他们不会因为ppi的变化而变化,在相同物理尺寸和不同ppi下,他们呈现的高度大小是相同。也就是说更接近物理呈现,而px则不行。android实现登录注册
Android实现记住密码和自动登录功能
android常用系统界面控件使用大合集
android登录界面记住多组账号与密码
android运行界面及源代码
Android界面设计规范