1 ,手动设置横竖屏
TestAndroidActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //设置为置屏幕为竖屏
TestAndroidActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
<activity android:configChanges="orientation|keyboardHidden"
2 动态更改字符串
<string name="shortcut_installed" msgid="7071557296331322355">"已创建“<xliff:g id="NAME">%s</xliff:g>”快捷方式。"</string>
java代码 String name ="demo";
String string=context.getString(R.string.shortcut_duplicate, name)
string== 已创建demo快捷方式
3. 设置和取消全屏
public void setFullScreen(){
WindowManager.LayoutParams attrs = mWindow.getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
mWindow.setAttributes(attrs);
mWindow.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
public void setScreenNoLimit(){
WindowManager.LayoutParams attrs = mWindow.getAttributes();
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
mWindow.setAttributes(attrs);
//取消全屏设置
mWindow.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
4. android 数据库事务处理
mDatabase.beginTransaction();
try{
//在这里执行多个数据库操作
//执行过程中可能会抛出异常
mDatabase.setTransactionSuccessful();
//在setTransactionSuccessful和endTransaction之间不进行任何数据库操作
}catch(Exception e){
//当数据库操作出现错误时,需要捕获异常,结束事务
mDatabase.endTransaction();
throw e;
}
//当所有操作执行完成后结束一个事务
mDatabase.endTransaction();
备注:当endTransaction()时,会根据是否setTransactionSuccessful()提交数据或者回滚。
}
5 设置壁纸显示的主题
用<style name="Theme" parent="@android:style/Theme.Holo.Wallpaper.NoTitleBar">这个就可以显示
也可以修改其他主题:
<style name="Theme" parent="@android:style/Theme.Holo.Light.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowShowWallpaper">true</item>
</style>
6.andorid 4.0后设置屏幕强制横竖屏
在AndroidManifest.xml中的Activity加入以下属性:
android:configChanges="orientation|screenSize"
java源码:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onConfigurationChanged(newConfig);
}
7. <category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" /> 上述同时出现,按home键可出现类似多桌面打开应用的选择框,
<category android:name="android.intent.category.LAUNCHER" /> 觉得是否在桌面生成快捷方式
8.监听开关屏幕
(1):注册监听 @Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
// Listen for broadcasts related to user-presence
final IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
registerReceiver(mReceiver, filter);
}
(2): private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_OFF.equals(action)) {
/////屏幕关闭 后要处理的逻辑
} else if (Intent.ACTION_USER_PRESENT.equals(action)) {
//打开
}
}
};
(3):取消监听 @Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
unregisterReceiver(mReceiver);
}
9.后退键盘 : @Override
public void onBackPressed() {}
10 广播接收者
内部类的接收者好像不能在manifest里边静态注册,还是在代码动态注册吧
11. 更新widget的UI,AppWidgetManager对象调用updateAppWidget(),但是不可频繁调用,而且最好在定时器或线程,否则可能导致桌面卡死
12 Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)
(1)在工程下新建lib文件夹,将需要的第三方包拷贝进来。
(2)将引用的第三方包,添加进工作的build path。
(3)(关键的一步)将lib设为源文件夹。
在/libs 文件夹上右键--Build Path--Use as Source Folder
如果不设置,则程序编译可以通过,但运行的时候,会报:
java.lang.NoClassDefFoundError
若出现如下问题取消之后再重新编译。。。
13.监听数据库变化(未接电话)
注册监听
ContentResolver resolver = getContentResolver();
// Register for changes to the call info
resolver.registerContentObserver(Calls.CONTENT_URI, true,mCallInfoObserver);
覆写监听数据库改变
private final ContentObserver mCallInfoObserver = new ContentObserver(new Handler()) {
public void onChange(boolean selfChange) {
//Log.i("hhl", "==LauncherApplications.java==mCallInfoObserver==");
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.setComponent(sCallComponentName);// public static final ComponentName sCallComponentName = new ComponentName("com.android.contacts","com.android.contacts.activities.DialtactsActivity");
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
mModel.shenduUpdateAppMarkFromRegister(CALL_MARK,intent);
}
};
14 用法<activity android:clearTaskOnLanunch=”true/false”></activity>
假设,某人从主画面启动了Activity P,并从那里迁移至Activity Q。接下来用户按下HOME,然后返回Activity P。一般,用户可能见到的是Activity Q,因为它是P的Task中最后工作的内容。然而,如果P设定这个特性为“true”,当用户按下HOME并使这个Task再次进入前台时,其上的所有的 Activity(在这里是Q)都将被清除。因此,当返回到这个Task时,用户只能看到P。
但是当P.startActivity(Q)才有效, P.startActivityForResult(Q)时无效
15.控件getHeight和getWidth等于0的解决办法,在onCreat()方法里边写就行
//-----------------------------------------------方法三
ViewTreeObserver vto2 = imageView.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth());
}
});
16.获取所有的应用(带启动项的LAUNCHER)
final PackageManager packageManager = getPackageManager();
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// get all apps
final List<ResolveInfo> apps = packageManager.queryIntentActivities(
mainIntent, 0);
17.开机自启动
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
获取开机启动动作的权限permission
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>"
TestAndroidActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); //设置为置屏幕为竖屏
TestAndroidActivity.this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
<activity android:configChanges="orientation|keyboardHidden"
2 动态更改字符串
<string name="shortcut_installed" msgid="7071557296331322355">"已创建“<xliff:g id="NAME">%s</xliff:g>”快捷方式。"</string>
java代码 String name ="demo";
String string=context.getString(R.string.shortcut_duplicate, name)
string== 已创建demo快捷方式
3. 设置和取消全屏
public void setFullScreen(){
WindowManager.LayoutParams attrs = mWindow.getAttributes();
attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
mWindow.setAttributes(attrs);
mWindow.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
public void setScreenNoLimit(){
WindowManager.LayoutParams attrs = mWindow.getAttributes();
attrs.flags &= (~WindowManager.LayoutParams.FLAG_FULLSCREEN);
mWindow.setAttributes(attrs);
//取消全屏设置
mWindow.clearFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
}
4. android 数据库事务处理
mDatabase.beginTransaction();
try{
//在这里执行多个数据库操作
//执行过程中可能会抛出异常
mDatabase.setTransactionSuccessful();
//在setTransactionSuccessful和endTransaction之间不进行任何数据库操作
}catch(Exception e){
//当数据库操作出现错误时,需要捕获异常,结束事务
mDatabase.endTransaction();
throw e;
}
//当所有操作执行完成后结束一个事务
mDatabase.endTransaction();
备注:当endTransaction()时,会根据是否setTransactionSuccessful()提交数据或者回滚。
}
5 设置壁纸显示的主题
用<style name="Theme" parent="@android:style/Theme.Holo.Wallpaper.NoTitleBar">这个就可以显示
也可以修改其他主题:
<style name="Theme" parent="@android:style/Theme.Holo.Light.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowShowWallpaper">true</item>
</style>
6.andorid 4.0后设置屏幕强制横竖屏
在AndroidManifest.xml中的Activity加入以下属性:
android:configChanges="orientation|screenSize"
java源码:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
if(getRequestedOrientation()!=ActivityInfo.SCREEN_ORIENTATION_PORTRAIT){
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
super.onConfigurationChanged(newConfig);
}
7. <category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" /> 上述同时出现,按home键可出现类似多桌面打开应用的选择框,
<category android:name="android.intent.category.LAUNCHER" /> 觉得是否在桌面生成快捷方式
8.监听开关屏幕
(1):注册监听 @Override
public void onAttachedToWindow() {
super.onAttachedToWindow();
// Listen for broadcasts related to user-presence
final IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
registerReceiver(mReceiver, filter);
}
(2): private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (Intent.ACTION_SCREEN_OFF.equals(action)) {
/////屏幕关闭 后要处理的逻辑
} else if (Intent.ACTION_USER_PRESENT.equals(action)) {
//打开
}
}
};
(3):取消监听 @Override
public void onDetachedFromWindow() {
super.onDetachedFromWindow();
unregisterReceiver(mReceiver);
}
9.后退键盘 : @Override
public void onBackPressed() {}
10 广播接收者
内部类的接收者好像不能在manifest里边静态注册,还是在代码动态注册吧
11. 更新widget的UI,AppWidgetManager对象调用updateAppWidget(),但是不可频繁调用,而且最好在定时器或线程,否则可能导致桌面卡死
12 Android中引入第三方Jar包的方法(java.lang.NoClassDefFoundError解决办法)
(1)在工程下新建lib文件夹,将需要的第三方包拷贝进来。
(2)将引用的第三方包,添加进工作的build path。
(3)(关键的一步)将lib设为源文件夹。
在/libs 文件夹上右键--Build Path--Use as Source Folder
如果不设置,则程序编译可以通过,但运行的时候,会报:
java.lang.NoClassDefFoundError
若出现如下问题取消之后再重新编译。。。
13.监听数据库变化(未接电话)
注册监听
ContentResolver resolver = getContentResolver();
// Register for changes to the call info
resolver.registerContentObserver(Calls.CONTENT_URI, true,mCallInfoObserver);
覆写监听数据库改变
private final ContentObserver mCallInfoObserver = new ContentObserver(new Handler()) {
public void onChange(boolean selfChange) {
//Log.i("hhl", "==LauncherApplications.java==mCallInfoObserver==");
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.setComponent(sCallComponentName);// public static final ComponentName sCallComponentName = new ComponentName("com.android.contacts","com.android.contacts.activities.DialtactsActivity");
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
mModel.shenduUpdateAppMarkFromRegister(CALL_MARK,intent);
}
};
14 用法<activity android:clearTaskOnLanunch=”true/false”></activity>
假设,某人从主画面启动了Activity P,并从那里迁移至Activity Q。接下来用户按下HOME,然后返回Activity P。一般,用户可能见到的是Activity Q,因为它是P的Task中最后工作的内容。然而,如果P设定这个特性为“true”,当用户按下HOME并使这个Task再次进入前台时,其上的所有的 Activity(在这里是Q)都将被清除。因此,当返回到这个Task时,用户只能看到P。
但是当P.startActivity(Q)才有效, P.startActivityForResult(Q)时无效
15.控件getHeight和getWidth等于0的解决办法,在onCreat()方法里边写就行
//-----------------------------------------------方法三
ViewTreeObserver vto2 = imageView.getViewTreeObserver();
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth());
}
});
16.获取所有的应用(带启动项的LAUNCHER)
final PackageManager packageManager = getPackageManager();
final Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
// get all apps
final List<ResolveInfo> apps = packageManager.queryIntentActivities(
mainIntent, 0);
17.开机自启动
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
</action>
</intent-filter>
获取开机启动动作的权限permission
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>"
发表评论
-
ActivityGroup 替代tabActivity
2013-12-26 16:43 2538转载自http://www.cnblogs.com/answe ... -
Android实战技巧:为从右向左语言定义复杂字串
2013-09-04 17:37 1140我们所使用的语言,无论是中文还是英语, ... -
Android 5种方式存储数据:
2013-05-08 17:17 1096Android 提供了5种方式存储数据: --使用Shared ... -
widget的设计与应用
2013-02-02 16:27 9291.AppWidgetProviderInfo对象 ... -
Android系统主题设计和实现
2012-12-11 14:09 1479转自:http://www.apkbus.com/ ... -
Android实现DES对字符串加密
2012-09-02 14:15 17154import java.io.Unsuppor ... -
onSaveInstanceState
2012-08-01 17:40 716@Override //存储 public void onSa ... -
处理多个Activity
2012-07-20 09:40 705public class LifecycleManager ... -
bitmap 和drawable 互相转换
2012-07-19 13:37 647// bitmap to drawable; Drawable ... -
设置壁纸的三种方法
2012-07-19 11:46 25221111111111111111111111111111111 ... -
sqlite数据库处理时间问题 和 日期时间函数
2012-06-27 10:36 22838首先,sqlite数据库在时间 ... -
app缓存管理
2012-06-27 10:25 1051无论大型或小型应用, ... -
Uri、UriMatcher、ContentUris类使用介绍&&Android应用间数据共享之ContentProvider
2012-05-24 15:50 4423Android应用开发中我们会经常用Uri进行数据的处理,下面 ... -
getWidth()为0
2012-04-12 10:06 2007一般在刚开始开发android时,会犯一个错误,即在View的 ... -
自定义View 及使用
2012-04-05 14:08 768可能是一直都在做Web的富客户端开发的缘故吧,在接触Andro ... -
搜索手机联系人所有字段
2012-03-28 15:54 1441想取手机联系人的有效字段,但是苦于找不到API表示的字段变量, ... -
Andoid2.X各字段意义
2012-03-28 14:59 1249ContactsContract.Contacts.TIMES ... -
SMS发送流程
2012-03-20 18:07 1255发短信流程: 1 afterTextChanged{mWork ... -
Android telephony MMS 学习笔记
2012-03-14 13:32 2882转载 http://blog.csdn.net/tjy1985 ... -
Android_Mms源代码接受短信流程
2012-03-14 13:27 971短信来了之后framework会发送广播 “android.p ...
相关推荐
【嵌入式Android综合实验报告】 本实验报告主要围绕一个基于Android平台的简单计算器的设计与实现展开,旨在让学生深入理解Android应用开发的基本流程和技术。在Android操作系统中,计算器作为一个常见且实用的应用...
Android 综合项目实训总结报告便签管理 Android 综合项目实训总结报告便签管理是 Android 项目实训的总结报告,涵盖了项目实训的整个过程,从项目目标到项目实施的每个阶段都进行了详细的描述。该报告还提供了详细...
总之,这个“Android综合布局实例”展示了如何利用`RelativeLayout`的灵活性创建一个包含多个组件的工单界面。通过对视图的位置进行精确控制,开发者可以自由地设计复杂的用户界面,适应不同屏幕尺寸和设备的需求。...
"android综合实例代码"这个资源提供了一个丰富的实践平台,涵盖了指南针、模拟传感器、数据库管理、网络通信以及自定义Adapter与ListView的运用。以下是对这些关键知识点的详细解释: 1. **指南针(Compass)**: ...
【Android综合实例上传】 在Android应用开发中,实践是提升技能的关键。这些综合实例涵盖了多个领域,旨在帮助开发者深入理解Android平台的各种功能和组件。以下是对每个源码项目的一个详细概述: 1. **音乐播放器...
在本章节中,“Google.Android开发入门与实战第12章.Android综合案例一——RSS阅读器实例”主要聚焦于Android应用程序开发中的一个实际应用场景——构建一个RSS阅读器。这个实例将帮助初学者理解如何将Android SDK的...
《eclipse Itop4412 Android综合设计实验》 在Android开发领域,Eclipse曾是主流的集成开发环境(IDE)之一,尤其对于初学者和教育领域,它提供了丰富的功能和良好的兼容性。本实验重点是利用Eclipse进行Itop4412...
我们“嵌入式软件开发”的综合性实验课程设计:加密记事本。实现了对事本的增加,修改,查看,删除,加密的功能,程序比较常见,但是功能比较实用,而且配上我自己写的详细的实验报告,包括实验设计、实验功能说明、...
在本项目"简单Android综合小作业-慕课"中,我们关注的是Android应用程序开发的基础知识。这个小作业可能包括创建一个基本的Android应用,涵盖了一系列关键概念和技术,这对于初学者或者正在学习Android开发的人来说...
【Android 综合训练题详解】 在Android应用开发中,设计和实现用户界面是至关重要的。本题提供了两个具体的界面设计任务,旨在检验开发者对于Android布局的理解和使用能力。我们将详细解析这两个练习题。 **练习题...
《Android综合应用》课程主要针对Java开发者,特别是对移动智能设备开发感兴趣的人群。这个课程深入探讨了如何使用Java语言和Android SDK来构建高质量、功能丰富的Android应用程序。在这个压缩包中,你将找到一系列...
GoogleAndroid开发入门与实战 第16章 Android综合实例.pdf
在Android开发领域,"android综合练习"通常是指开发者通过创建一系列小型项目或功能模块来提升自己的技能和熟悉新技术的过程。这个过程涵盖了Android应用开发的各个方面,包括用户界面设计、网络通信、数据存储、多...
在Android开发领域,一个综合性的Demo常常用于展示各种常见的功能实现和交互效果,便于开发者学习和参考。"android 综合demo"就是这样一个项目,它集合了多种实用的UI组件和交互模式,对于提升Android应用的用户体验...
移动开发技术Android(安卓)综合项目: ①各个基本组件、高级组件的使用。 ②对话框的应用(AlertDialog、DatePickerDialog、TimePickerDialog)。 ③Intent实现页面间的跳转。 ④Sqlite数据库的创建以及增删改查。
本项目"Android基础综合项目.zip"显然是一个使用Eclipse创建的Android应用程序示例,旨在教授初学者如何从零开始搭建Android项目。以下将详细介绍相关知识点。 一、Android项目结构 在Eclipse中创建的Android项目...
Android核心分析.pdf 百度Android工程师面试题.pdf Google Android应用软体架构设计.pdf Android开发书籍 - 应用框架原理与程序设计36技 - 高焕堂.pdf Android API.chm
这个案例不仅涵盖了网络编程、数据解析,还涉及了UI设计、数据存储和用户体验优化等多个方面,是Android开发者提高综合能力的良好实践。在实际项目中,还可以根据需求扩展功能,如添加搜索、分类、书签等特性。
本项目是一个基于Android平台的在线订餐系统,适用于学习Android应用开发的学生进行课程设计或实践。这个项目提供了完整的源码,包含实现在线订餐功能的所有模块,并附带了一个可安装的APK文件,方便在Android模拟器...