Android点滴(二)

如何获取状态栏和标题栏的高度?
1.获取状态栏高度:
decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。于是,我们就可以算出状态栏的高度了。
Java代码   收藏代码
  1. Rect frame = new Rect();  
  2. getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  
  3. int statusBarHeight = frame.top;   
2.获取标题栏高度:
getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。
Java代码   收藏代码
  1. int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();  
  2. //statusBarHeight是上面所求的状态栏的高度  
  3. int titleBarHeight = contentTop - statusBarHeight;  

如何将一个视窗(windows)盖在整个Application的最上面?
Java代码   收藏代码
  1.  private ImageView waitView;  
  2. private final void showWaiting() {  
  3.  try {  
  4. WindowManager.LayoutParams lp = null;  
  5. lp = new WindowManager.LayoutParams(  
  6. ViewGroup.LayoutParams.WRAP_CONTENT,  
  7. ViewGroup.LayoutParams.WRAP_CONTENT,  
  8. WindowManager.LayoutParams.TYPE_TOAST ,  
  9. WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE  
  10. | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE  
  11. | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,  
  12. PixelFormat.TRANSLUCENT  
  13. | WindowManager.LayoutParams.FIRST_SYSTEM_WINDOW) ;  
  14. WindowManager mWindowManager = (WindowManager) G.appInstance  
  15. .getSystemService(Context.WINDOW_SERVICE);  
  16. if (waitView == null) {  
  17. LayoutInflater inflate = (LayoutInflater) G.appInstance  
  18. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);  
  19. waitView = (ImageView) inflate.inflate(R.layout.waiting_layout,  
  20. null);  
  21. }  
  22. mWindowManager.addView(waitView, lp);  
  23. catch (Throwable e) {  
  24. }  
  25. }  
注意: 
1. 要将window的类型配置成Type_toast。 
2.G.appInstance 上下文需要使用Application的context. 

如何判断快捷方式是否已经创建?
快捷方式信息是保存在com.android.launcher的launcher.db的favorites表中
Java代码   收藏代码
  1.     boolean isInstallShortcut = false ;  
  2.     final ContentResolver cr = context.getContentResolver();  
  3.     final String AUTHORITY = "com.android.launcher.settings";  
  4.     final Uri CONTENT_URI = Uri.parse("content://" +  
  5.                      AUTHORITY + "/favorites?notify=true");  
  6.       
  7.     Cursor c = cr.query(CONTENT_URI,  
  8.     new String[] {"title","iconResource" },  
  9.     "title=?",  
  10.     new String[] {"XXX" }, null);//XXX表示应用名称。  
  11.             if(c!=null && c.getCount()>0){  
  12.         isInstallShortcut = true ;  
  13.     }  
  14.     /*try { 
  15.         while (c.moveToNext()) { 
  16.                                     String tmp = ""; 
  17.             tmp = c.getString(0); 
  18.         } 
  19.         } catch (Exception e) { 
  20.  
  21.         } finally { 
  22.             c.close(); 
  23.         }*/  
  24.     return isInstallShortcut ;  
  25. }  
要有权限: 
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS"/>

注意:2.2及其之后的版本不能用这个方法判断!(虽然在launcher.db数据库里还有favorites这个表)

如何让ListView中TextView的字体颜色跟随焦点的变化?
我们通常需要ListView中某一项选中时,他的字体颜色和原来的不一样。 如何设置字体的颜色呢? 在布局文件中TextColor一项来设置颜色,但是不是只设置一种颜色,而是在不同的条件下设置不同的颜色: 下面是个例子: 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="utf-8" ?>  
  2. <selector xmlns:android="http://schemas.android.com/apk/res/android">  
  3. <item android:state_enabled="false" android:color="@color/orange"></item>  
  4. <item android:state_window_focused="false" android:color="@color/orange"></item>  
  5. <item android:state_pressed="true" android:color="@color/white"></item>  
  6. <item android:state_selected="true" android:color="@color/white"></item>  
  7. <item android:color="@color/orange"></item>  
  8. </selector>   
  9. 在获取焦点或者选中的情况下设置为白色,其他情况设置为橘黄色。  
如何在android的一个应用中调用另外一个应用?
Java代码   收藏代码
  1. Intent intent = new Intent();  
  2. //第一个参数另一个应用的包名,第二个是需要启动的类  
  3. intent.setComponent(new ComponentName("com.Ex03_03","com.Ex03_03.Ex03_03"));  
  4. startActivity(intent);  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ActiViz是一个基于C#的开源数据可视化库,它提供了一系列用于创建和呈现2D和3D图形的功能。如果你想学习ActiViz,以下是一些学习点滴: 1. 理解ActiViz的基本概念:开始学习之前,了解ActiViz的基本概念是很重要的。了解ActiViz的工作原理、主要组件和使用方式,可以帮助你更好地理解和应用它。 2. 安装和配置ActiViz:在开始使用ActiViz之前,你需要将其安装到你的开发环境中。阅读官方文档或教程,按照指示进行安装和配置。 3. 学习ActiViz的API:ActiViz提供了丰富的API,用于创建和操作图形对象。学习这些API的用法和功能,可以帮助你更好地使用ActiViz来实现你的需求。 4. 创建基本图形对象:开始学习ActiViz时,从创建一些基本的图形对象开始是一个不错的选择。尝试创建点、线、多边形等基本图形对象,并学习如何对它们进行操作和渲染。 5. 了解数据可视化技术:ActiViz最常用的用途之一是数据可视化。学习如何使用ActiViz来可视化不同类型的数据,如维数据、三维数据、图像数据等,可以帮助你更好地应用ActiViz来分析和展示数据。 6. 阅读官方文档和示例代码:ActiViz有详细的官方文档和示例代码,可以帮助你更深入地了解和使用ActiViz。阅读官方文档和运行示例代码,可以帮助你学习一些高级功能和技巧。 7. 参与开源社区:ActiViz是一个开源项目,有一个活跃的社区。参与到ActiViz的开发和讨论中,可以帮助你与其他开发者交流和学习,同时也可以为ActiViz的发展做出贡献。 希望这些学习点滴对你有帮助!祝你学***

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值