首页 文章 精选 留言 我的

精选列表

搜索[UI设计],共10000篇文章
优秀的个人博客,低调大师

【Android UI设计与开发】3.引导界面(三)实现应用程序只启动一次引导界面

大部分的引导界面基本上都是千篇一律的,只要熟练掌握了一个,基本上也就没什么好说的了,要想实现应用程序只启动一次引导界面这样的效果,只要使用SharedPreferences类,就会让程序变的非常简单,下面来详细介绍一下这个类的使用方法 1.SharedPreferences的详细介绍和用法 其实在20.游戏开发基础(游戏数据存储)中已经有过介绍了,为了文章的完整还是再介绍一遍。 做软件开发应该都知道,很多软件会有配置文件,里面存放这程序运行当中的各个属性值,由于其配置信息并不多,如果采用数据库来存放并不划算,因为数据库连接跟操作等耗时大大影响了程序的效率,因此我们使用键值这种一一对应的关系来存放这些配置信息。SharedPreferences正是Android中用于实现这中存储方式的技术。 SharedPreferences的使用非常简单,能够轻松的存放数据和读取数据。SharedPreferences只能保存简单类型的数据,例如,String、int等。一般会将复杂类型的数据转换成Base64编码,然后将转换后的数据以字符串的形式保存在 XML文件中,再用SharedPreferences保存。 SharedPreferences使用方法: <1> 使用Activity类的getSharedPreferences方法获得SharedPreferences对象,其中存储key-value的文件的名称由getSharedPreferences方法的第一个参数指定; <2> 使用SharedPreferences接口的edit获得SharedPreferences.Editor对象; <3> 通过SharedPreferences.Editor接口的putXxx方法保存key-value对。其中Xxx表示不同的数据类型。例如:字符串类型的value需要用putString方法; <4> 通过SharedPreferences.Editor接口的commit方法保存key-value对。commit方法相当于数据库事务中的提交(commit)操作。 具体代码的书写流程为: A、存放数据信息 <1> 打开Preferences,名称为setting,如果存在则打开它,否则创建新的Preferences SharedPreferences settings = getSharedPreferences(“setting”, 0); <2> 让setting处于编辑状态 SharedPreferences.Editor editor = settings.edit(); <3> 存放数据 editor.putString(“name”,”cnblogs”); editor.putString(“URL”,”www.cnblogs.com”); <4> 完成提交 editor.commit(); B、读取数据信息 <1> 获取Preferences SharedPreferences settings = getSharedPreferences(“setting”, 0); <2> 取出数据 String name = settings.getString(“name”,”默认值”); String url = setting.getString(“URL”,”default”); 以上就是SharedPreferences的使用方法,其中创建的Preferences文件存放位置可以在Eclipse中查看: DDMS->File Explorer /data/data/<package name>/shared_prefs/setting.xml 2.实现的效果图(图片分别为欢迎界面、引导界、软件主页) 第一次启动程序:欢迎界面-->引导界面-->软件主页 以后启动程序:欢迎界面-->软件主页 3.具体的实现编码 (1)欢迎页面Java代码,就是简单的建个线程,延迟指定时间,然后跳转就可以了 WelcomeActivity (2)引导页面,用的ViewPager实现的,可以参考下ViewPager介绍和简单实现,具体可以在源代码中查看 (3)主页,这就没什么好说的了,就一个显示布局的页面。 本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/p/4284100.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

【Android UI设计与开发】7.底部菜单栏(四)PopupWindow 实现显示仿腾讯新闻底部弹出菜单

前一篇文章中有用到 PopupWindow 来实现弹窗的功能。简单介绍以下吧。 官方文档是这样解释的:这就是一个弹出窗口,可以用来显示一个任意视图。出现的弹出窗口是一个浮动容器的当前活动。 1.首先来个简单的栗子,效果如下: 只有两个布局文件,一个是弹窗布局(只有一张图片),一个是主界面布局(只有一个按钮)。 然后在主界面代码中实例PopupWindow ,指定弹出的界面,在按钮点击事件中显示或隐藏弹窗就可以了,代码如下: package com.yanis.demo; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.LinearLayout.LayoutParams; import android.widget.PopupWindow; public class PopupWindowActivity extends Activity { PopupWindow pop; Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_popup_window); btn = (Button) findViewById(R.id.btnShowWindow); LayoutInflater inflater = LayoutInflater.from(this); // 引入窗口配置文件 - 即弹窗的界面 View view = inflater.inflate(R.layout.my_popup_window, null); // PopupWindow实例化 pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (pop.isShowing()) { // 隐藏窗口,如果设置了点击窗口外消失,则不需要此方式隐藏 pop.dismiss(); } else { // 弹出窗口显示内容视图,默认以锚定视图的左下角为起点,这里为点击按钮 pop.showAsDropDown(v); } } }); } } 2.知道了怎么实现 PopupWindow 弹窗,利用其特性替换系统自带的菜单栏,来个仿腾讯新闻的菜单吧,效果图如下: 布局什么的花点时间,慢慢调,自然就出来了,主要还是主界面的逻辑代码啊,菜单就是通过 PopupWindow 来显示的,具体代码如下: package com.yanis.popup_window; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.graphics.drawable.BitmapDrawable; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnKeyListener; import android.widget.Button; import android.widget.ImageView; import android.widget.LinearLayout.LayoutParams; import android.widget.PopupWindow; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity implements OnClickListener, OnKeyListener { PopupWindow pop; TextView hideView; Button btnCancel; ImageView btnNight, btnWord, btnExit; View view; boolean isOut, isIn;// 是否弹窗显示 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); } /** * 初始化组件 */ private void initView() { hideView = (TextView) findViewById(R.id.hideView); LayoutInflater inflater = LayoutInflater.from(this); // 引入窗口配置文件 - 即弹窗的界面 view = inflater.inflate(R.layout.menu_view, null); btnNight = (ImageView) view.findViewById(R.id.btnNight); btnWord = (ImageView) view.findViewById(R.id.btnWord); btnExit = (ImageView) view.findViewById(R.id.btnExit); btnCancel = (Button) view.findViewById(R.id.btnCancel); } /** * 初始化数据 */ private void initData() { btnNight.setOnClickListener(this); btnWord.setOnClickListener(this); btnExit.setOnClickListener(this); btnCancel.setOnClickListener(this); view.setFocusableInTouchMode(true); view.setOnKeyListener(this); // PopupWindow实例化 pop = new PopupWindow(view, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT, true); /** * PopupWindow 设置 */ // pop.setFocusable(true); //设置PopupWindow可获得焦点 // pop.setTouchable(true); //设置PopupWindow可触摸 // pop.setOutsideTouchable(true); // 设置非PopupWindow区域可触摸 // 设置PopupWindow显示和隐藏时的动画 pop.setAnimationStyle(R.style.MenuAnimationFade); /** * 改变背景可拉的弹出窗口。后台可以设置为null。 这句话必须有,否则按返回键popwindow不能消失 或者加入这句话 * ColorDrawable dw = new * ColorDrawable(-00000);pop.setBackgroundDrawable(dw); */ pop.setBackgroundDrawable(new BitmapDrawable()); } /** * 按钮点击事件监听 * * @param v */ @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnNight: changePopupWindowState(); Toast.makeText(MainActivity.this, "你点击了夜间模式", Toast.LENGTH_SHORT) .show(); break; case R.id.btnWord: changePopupWindowState(); Toast.makeText(MainActivity.this, "你点击了文本模式", Toast.LENGTH_SHORT) .show(); break; case R.id.btnExit: exitTheDemo(); break; case R.id.btnCancel: changePopupWindowState(); break; } } /** * 退出程序 */ private void exitTheDemo() { changePopupWindowState(); new AlertDialog.Builder(MainActivity.this).setMessage("确定退出这个 Demo 吗?") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }).setNegativeButton("取消", null).show(); } /** * 改变 PopupWindow 的显示和隐藏 */ private void changePopupWindowState() { if (pop.isShowing()) { // 隐藏窗口,如果设置了点击窗口外消失,则不需要此方式隐藏 pop.dismiss(); } else { // 弹出窗口显示内容视图,默认以锚定视图的左下角为起点,这里为点击按钮 pop.showAtLocation(hideView, Gravity.BOTTOM, 0, 0); } } // Called when a key was pressed down and not handled by any of the views // inside of the activity @Override public boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_MENU:// 菜单键监听 isOut = true; changePopupWindowState(); break; } return super.onKeyDown(keyCode, event); } // Called when a hardware key is dispatched to a view. @Override public boolean onKey(View v, int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_MENU: if (isOut && !isIn) { isOut = false; isIn = true; } else if (!isOut && isIn) { isIn = false; changePopupWindowState(); } break; } return false; } } 本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/p/4288864.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

【Android UI设计与开发】6.底部菜单栏(三)使用Fragment+PopupWindow仿QQ空间最新版底部菜单栏

直接看栗子吧,效果基本实现,界面微调和弹窗的优化,去做的话会很耗时说,暂时就酱紫了。上传效果动态图太大了,直接手机截图的效果图如下: 至于代码的实现主要就是自定义的菜单栏,和用 PopupWindow 实现弹窗了。仔细看代码很好懂的。 1.主界面布局代码如下: activity_main.xml 2.弹窗布局,就是几个图标的显示,比较简单的,可以看代码 3.然后就是主界面逻辑代码了,菜单栏按钮事件控制页面的显示,可以图标的选中状态,已经弹窗的实现,代码如下: MainActivity 4.其他的请看源代码吧 o(∩_∩)o 本文转自叶超Luka博客园博客,原文链接:http://www.cnblogs.com/yc-755909659/p/4288260.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册