Activity全屏、隐藏系统标题栏、设置屏幕方向、Activity跳转等功能

/**
* Copyright (C) 2012 TookitForAndroid Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package chen.android.toolkit.system; import java.util.Map; import org.apache.http.NameValuePair; import android.app.Activity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast; /**
* </br><b>name : </b> ActivityUtil
* </br><b>description :</b>Activity特性辅助工具
* </br>@author : 桥下一粒砂
* </br><b>e-mail : </b> chenyoca@gmail.com
* </br><b>weibo : </b> @桥下一粒砂
* </br><b>date : </b> 2012-7-8
*
*/
public class ActivityUtil { /**
* </br><b>title : </b> 设置Activity全屏显示
* </br><b>description :</b>设置Activity全屏显示。
* @param activity Activity引用
* @param isFull true为全屏,false为非全屏
*/
public static void setFullScreen(Activity activity,boolean isFull){
Window window = activity.getWindow();
WindowManager.LayoutParams params = window.getAttributes();
if (isFull) {
params.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
window.setAttributes(params);
window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
} else {
params.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
window.setAttributes(params);
window.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
} /**
* </br><b>title : </b> 隐藏系统标题栏
* </br><b>description :</b>隐藏Activity的系统默认标题栏
* @param activity Activity对象
*/
public static void hideTitleBar(Activity activity){
activity.requestWindowFeature(Window.FEATURE_NO_TITLE);
} /**
* </br><b>title : </b> 设置Activity的显示方向为垂直方向
* </br><b>description :</b>强制设置Actiity的显示方向为垂直方向。
* @param activity Activity对象
*/
public static void setScreenVertical(Activity activity){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
} /**
* </br><b>title : </b> 设置Activity的显示方向为横向
* </br><b>description :</b>强制设置Actiity的显示方向为横向。
* @param activity Activity对象
*/
public static void setScreenHorizontal(Activity activity){
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} /**
* </br><b>title : </b> 隐藏软件输入法
* </br><b>description :</b>隐藏软件输入法
* </br><b>time :</b> 2012-7-12 下午7:20:00
* @param activity
*/
public static void hideSoftInput(Activity activity){
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
} /**
* </br><b>title : </b> 使UI适配输入法
* </br><b>description :</b>使UI适配输入法
* </br><b>time :</b> 2012-7-17 下午10:21:26
* @param activity
*/
public static void adjustSoftInput(Activity activity) {
activity.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
} /**
* </br><b>title : </b> 跳转到某个Activity。
* </br><b>description :</b>跳转到某个Activity
* </br><b>time :</b> 2012-7-8 下午3:20:00
* @param activity 本Activity
* @param targetActivity 目标Activity的Class
*/
public static void switchTo(Activity activity,Class<? extends Activity> targetActivity){
switchTo(activity, new Intent(activity,targetActivity));
} /**
* </br><b>title : </b> 根据给定的Intent进行Activity跳转
* </br><b>description :</b>根据给定的Intent进行Activity跳转
* </br><b>time :</b> 2012-7-8 下午3:22:23
* @param activity Activity对象
* @param intent 要传递的Intent对象
*/
public static void switchTo(Activity activity,Intent intent){
activity.startActivity(intent);
} /**
* </br><b>title : </b> 带参数进行Activity跳转
* </br><b>description :</b>带参数进行Activity跳转
* </br><b>time :</b> 2012-7-8 下午3:24:54
* @param activity Activity对象
* @param targetActivity 目标Activity的Class
* @param params 跳转所带的参数
*/
public static void switchTo(Activity activity,Class<? extends Activity> targetActivity,Map<String,Object> params){
if( null != params ){
Intent intent = new Intent(activity,targetActivity);
for(Map.Entry<String, Object> entry : params.entrySet()){
setValueToIntent(intent, entry.getKey(), entry.getValue());
}
switchTo(activity, intent);
}
} /**
* </br><b>title : </b> 带参数进行Activity跳转
* </br><b>description :</b>带参数进行Activity跳转
* </br><b>time :</b> 2012-7-17 下午10:22:58
* @param activity
* @param target
* @param params
*/
public static void switchTo(Activity activity,Class<? extends Activity> target,NameValuePair...params){
if( null != params ){
Intent intent = new Intent(activity,target);
for(NameValuePair param : params){
setValueToIntent(intent, param.getName(), param.getValue());
}
switchTo(activity, intent);
}
} /**
* </br><b>title : </b> 显示Toast消息。
* </br><b>description :</b>显示Toast消息,并保证运行在UI线程中
* </br><b>time :</b> 2012-7-10 下午08:36:02
* @param activity
* @param message
*/
public static void toastShow(final Activity activity,final String message){
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show();
}
});
} /**
* </br><b>title : </b> 将值设置到Intent里
* </br><b>description :</b>将值设置到Intent里
* </br><b>time :</b> 2012-7-8 下午3:31:17
* @param intent Inent对象
* @param key Key
* @param val Value
*/
public static void setValueToIntent(Intent intent, String key, Object val) {
if (val instanceof Boolean)
intent.putExtra(key, (Boolean) val);
else if (val instanceof Boolean[])
intent.putExtra(key, (Boolean[]) val);
else if (val instanceof String)
intent.putExtra(key, (String) val);
else if (val instanceof String[])
intent.putExtra(key, (String[]) val);
else if (val instanceof Integer)
intent.putExtra(key, (Integer) val);
else if (val instanceof Integer[])
intent.putExtra(key, (Integer[]) val);
else if (val instanceof Long)
intent.putExtra(key, (Long) val);
else if (val instanceof Long[])
intent.putExtra(key, (Long[]) val);
else if (val instanceof Double)
intent.putExtra(key, (Double) val);
else if (val instanceof Double[])
intent.putExtra(key, (Double[]) val);
else if (val instanceof Float)
intent.putExtra(key, (Float) val);
else if (val instanceof Float[])
intent.putExtra(key, (Float[]) val);
}
}

Activity的各种功能封装的更多相关文章

  1. js实现第一次打开网页弹出指定窗口(常用功能封装很好用)

    js实现第一次打开网页弹出指定窗口(常用功能封装很好用) 一.总结 1.常用功能封装:之前封装的cookie的操作函数非常好用,我自己也可以这么搞 二.js实现第一次打开网页弹出指定窗口 练习1:第一 ...

  2. STM32嵌入式开发学习笔记(二):将功能封装为库文件

    将所有的函数都堆在main.c文件里不是好的选择,庞大的代码文件会是你维护的障碍,明智的做法是,一种功能封装到一个库文件里. 库文件就是你代码开始部分写的#include<xxxx.h>里 ...

  3. JQuery实现列表中复选框全选反选功能封装

    我们在做列表的时候经常会遇到全选,反选进行批量处理问题,例如: 我当时就是简单的实现了,然后想封装到公共的js中,封装的太烂,不好意思贴出来了(就是把实现代码之间放到公共js中,然后每个页面都用固定的 ...

  4. Android Toast的多功能封装——Android开发之路1

    Android封装实现各种功能的Toast GitHub地址:https://github.com/SibreiaDante/ToastUtils 效果图: 方法封装如下: showSingleton ...

  5. 封装ShareSDK中的分享功能封以及对类似第三方功能封装的心得【原创】

    本篇的主题有三个: 1.封装思想的介绍 2.我的封装代码 3.我在封装sharesdk(采用的是简洁版本)分享功能是碰到的问题,以及解决方法. PS:其实这个我之前封装过一次,不过最近在重构项目时发现 ...

  6. selenium主要功能封装

    最近实习需要使用selenium这一自动化工具对公司的运维监控系统进行自动化爬取数据,编写代码过程中负责带我的杰哥让我参考借鉴他们公司外包的运维监控系统代码,在项目中我看到了对selenium主要各功 ...

  7. c++常用功能封装

    C++文件读写的封装 在C++开发中,文件读写是很常用的功能,出于代码复用的考虑,将它们进行封装. 其中,默认读写的文件是文本文件,并且需要按行处理.调用者只需要关注读取出来的每一行的处理方式.写文件 ...

  8. 在对Activity基类的封装中,我做了什么

    在开发实践中,不同Activity有很多代码是反复冗余的.因此非常有必要将这部分抽取出来.封装一个继承自Activity的类,命名为BaseActivity. 翻看之前写过的代码,起初,BaseAct ...

  9. Activity 之间 传递 List 封装的对象或者对象

    项目中遇到 从也个页面向还有一个页面跳转传递一个List 封装的对象 .按网上查的资料 须要把 对象 实现 Serializable接口. 写了一下.可是跳转直接崩溃.一直看错误之日找不到原因后来自习 ...

随机推荐

  1. C#中问号的使用

    1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空. 例如:string str=null; 是正确的,int i=null; 编译器就会报错. 为了使值 ...

  2. 百度地图API 重新生成点聚合的功能

    百度点聚合用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能. http://api.map.baidu.com/library/MarkerClusterer/1.2/docs/symbo ...

  3. JQuery属性过滤(转)

    属性过滤(Attribute Filters)的内容就是html元素中的属性 其包括以下几个选择器: [attribute] [attribute=value] [attribute!=value] ...

  4. &lt;五&gt;读《《大话设计模式》》之工厂模式

    怎么又是工厂模式呢?上次不是讲过简单工厂模式吗?不错.此工厂模式非彼工厂模式. 工厂模式:定义一个用于创建对象的接口.让子类决定实例化那一个类,工厂方法是一个类的实例化延迟到其子类. 还是以代码来进行 ...

  5. 设计模式(二)工厂模式Factory (创建型)

    工厂模式分为三种:简单工厂模式 (Simple Factory) .工厂方法模式(Factory Method).抽象工厂模式(Abstract Factory) //举例:发送邮件和短信的例子 /* ...

  6. Install Oracle 10g on Red Hat Linux 5.3 Step by Step

    一.虚拟机配置 1. 虚拟机(VBox 4.3.12) 2. 配置虚拟机网卡网络.选择host-only.VirtualBox Host-Only Network网卡IP为设置为192.168.1.1 ...

  7. 项目总结——深入浅出socket网络编程

    前言: 为什么会有如题的概念呢,我想对于没有主动听说过socket网络编程的人来说读到题目可能就已经蒙头了,为了很好的让大家进入场景,首先说一下一个需要用到这点东西的业务需求. 首先大家应该明确的是s ...

  8. Configuring the JA-SIG CAS Client --官方

    1. for Java using Spring Configuration of the CAS Client for Java via Spring IoC will depend heavily ...

  9. 《UNIX网络编程》之点对点通信

    思路: 点对点通信,其原理也比较简单,在前面回显服务器的基础上,我们分别在服务端和客户端都使用两个线程,一个线程负责发送数据包,一个线程负责接收数据包. 代码如下: 客户端: /*********** ...

  10. 解决从源码编译ncurses6.0编译lib_gen.c报错的问题

    直接从官网的源码编译时,会提示报错: gcc -DHAVE_CONFIG_H -I. -I../include -D_GNU_SOURCE -DNDEBUG -O2 --param max-inlin ...