Android学习记录:界面设计

本片文章将记录进行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

      GitHub https://github.com/hoang8f/android-flat-button

      效果图:
      这里写图片描述
      具体配置可以参考文章: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来解决)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值