本片文章将记录进行android界面开发时积累的知识
包括
- activity全屏
- activity跳转
- button设计
- 逐个输入编辑框设计
d0710 合并旧文章总结更新
d0721 添加内容
==========================================================================
设置App全屏的几种方法
最直接的是在一个activity的建立onCreate方法下,在super.onCreate()和setContentView()之间加入以下语句:
requestWindowFeature(Window.FEATURE_NO_TITLE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams. FLAG_FULLSCREEN);
还可以直接在AndroidManifest中application中加入以下语句:android:theme=”@style/AppTheme”
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > ... </application>
但是第二种方法会调用系统的主题,需要自己设置字体、颜色等参数,而且Android:Onclick有可能失效,需要手动添加监听器。
activity 跳转的几种方法
- 淡入淡出
系统自带动画
在intent开始后,可以加入Intent intent = new Intent(this,StorySel.class); startActivity(intent); this.overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out);
自己写淡入淡出的动画
alpha_in.xml<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="1500" /> </set> <!-- fromAlpha:开始时透明度 toAlpha: 结束时透明度 duration:动画持续时间 -->
alpha_out可以根据其上写出,参数可以自行修改。
- 左右滑入滑出
left_in.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" > <translate android:duration="200" android:fromXDelta="-100%" android:toXDelta="0" /> </set> <!-- duration: 动画时间 fromXDelta:开始时X toXDelta:结束时X -->
按钮设计
- 利用PS绘出PNG格式的Button,并设置为ImageButton
利用xml描述文件绘制Button
圆角矩形button设计如下
mybtn.xml<?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="false"> <shape android:shape="rectangle" > <!-- 填充的颜色 --> <solid android:color="#FFA500"></solid> <!-- 设置按钮的四个角为弧形 --> <!-- android:radius 弧形的半径 --> <corners android:radius="15dip" /> <!-- padding:Button里面的文字与Button边界的间隔 --> <padding android:bottom="2dp" android:left="2dp" android:right="2dp" android:top="2dp" /> </shape> </item> <item android:state_pressed="true"> <shape android:shape="rectangle"> <solid android:color="#FFDEAD" /> <corners android:radius="15dip" /> </shape> </item> </selector>
在对应的button中加入语句即可
android:background="@drawable/mybtn"
效果如图:
扁平化风格按钮库:FButton
效果图:
具体配置可以参考文章:http://blog.csdn.net/jack_king007/article/details/43867105
逐个输入编辑框设计
效果图如下
大体思路为利用OnKeyListener来监听回退键,利用TextChangedListener来监听文本的变化。
为这组EditText均加入这两个监听器。
建立一个方法,从这些EditText集合中获取总的文本。同时也可以获取输入的个数。
EditText提供了setFocusableInTouchMode、setFocusable与requestFocus。当需要跳转到下一个时,可以这样写:nextEditText.setFocusableInTouchMode(true); nextEditText.setFocusable(true); nextEditText.requestFocus(); preEditText.setFocusableInTouchMode(false); preEditText.setFocusable(false);
我的解决方案是,在TextChangedListener中的afterTextChanged方法中监听文本框的向后跳转。在OnKeyListener中监听Del键,从而实现相前跳转。(Google官方的软键盘监听不到Del键,可以参考其他博客,重写EditText来解决)