android技巧篇

来源:互联网 发布:小公司网络需求调查表 编辑:程序博客网 时间:2024/05/23 14:02

获取当前手机语言:

        Configuration conf = context.getResources().getConfiguration();
        String local = conf.locale.toString()

Android 屏幕显示设置:
程序中默的显示是带有标题栏和系统信息栏的,有的时候,这很影响程序界面的美观。手机默认的是竖屏,或与感应器状态相关,为了某种效果,我们的程序需要限制使用横屏或竖屏 
//设置为无标题栏 
requestWindowFeature(Window.FEATURE_NO_TITLE); 
//设置为全屏模式 
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
//设置为横屏 
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

Android 获取手机号/手机串号:
TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); 
String imei = tm.getDeviceId(); 
String tel = tm.getLine1Number();

3、设置闹钟 
获取闹钟管理的实例: 
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
设置单次闹钟: 
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (5*1000), pendingIntent); 
设置周期闹钟: 
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10*1000), (24*60*60*1000), pendingIntent);

 

如何获取Android系统时间是24小时制还是12小时制:
        ContentResolver cv = this.getContentResolver();
        String strTimeFormat = android.provider.Settings.System.getString(cv,
                                           android.provider.Settings.System.TIME_12_24);
       
        if(strTimeFormat.equals("24"))

       {
              Log.i("activity","24");
        }

 

 

硬件加速:

Application级别:<applicationandroid:hardwareAccelerated="true" ...>
      Activity级别:<activity android:hardwareAccelerated="false" ...>
      Window级别:
getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
      View级别:
myView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

 检测当前是否启用了硬件加速:
// 方法一
// 此方法返回true,如果myView挂在一个开启了硬件加速的Window之下,
// 也就是说,它在绘制的时候不一定使用了硬件加速,getDrawingCache
myView.isHardwareAccelerated();
              
// 方法二
// 返回true,如果canvas在绘制的时候启用了硬件加速
// 尽量采用此方法来判断是否开启了硬件加速
canvas.isHardwareAccelerated();

 

    Android获得屏幕的宽度和高度很简单,只需在Activity中调用以下代码:

1
2
3
4
5
6
int screenWidth;//屏幕宽度
int screenHeight;//屏幕高度
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();

反编译工具:

http://code.google.com/p/onekey-decompile-apk/

onekey-decompile-apk-1.0.1

字符串超长处理

android:ellipsize = "end"    省略号在结尾

android:ellipsize = "start"   省略号在开头

android:ellipsize = "middle"     省略号在中间

android:ellipsize = "marquee"  跑马灯

最好加一个约束android:singleline = "true"

当然也可以用代码语句

tv.setEllipsize(TextUtils.TruncateAt.valueOf("END"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("START"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MIDDLE"));

tv.setEllipsize(TextUtils.TruncateAt.valueOf("MARQUEE"));

 

Android下ListView上下滑动背景变黑

手指在ListView上下滚动时,ListViewItem背景变黑,因为在滚动的时候为了提升性能做了优化,为提高滚动的性能,Android框架在ListView中引入CacheColorHint属性。如果该值为非0,则说明该ListView绘制在单色不透明的背景上,在默认情况下该值为#191919,也就是黑色主题中的黑色背景颜色值,这样当ListView滚动的时候就会使用该值来绘制ListView的背景。

 

两种解决办法:

1、xml中,ListView内新增如下属性:

xml代码

android:cacheColorHint="#00000000" 

2、Java类文件中,对ListView设置如下属性:

Java代码

 

listview中item中button可点击:

  1. android:descendantFocusability="blocksDescendants"
原创粉丝点击