当前位置:操作系统 > 安卓/Android >>

Android 47个小知识

1、判断sd卡是否存在
 
 boolean sdCardExist = Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
 
2、TextView部分文字设置颜色
 
 TextView tv = new TextView(this);
 //添加css样式
 tv.setText(Html.fromHtml("<font color="#ff0000">红色</font>其它颜色"));
 
3、替换数据库某字段中某些字符的方法:
 
 update table set spell=replace(spell,'ɡ','g')
 
4、单选按钮默认选中:
 
 mRadioGroup.check(mRadioButton_1.getId());
 
下拉列表默认选中:
 
 for(int j = 0;j < cities.length;j ++){
     if(months[j].equals("武汉")){
         mSpinner_m.setSelection(j);
     }
 }
 
5、TextView中嵌套图片:
 
 Drawable draw = getResources().getDrawable(R.drawable.ji_dot_nor);
 textView.setCompoundDrawablesWithIntrinsicBounds(null, draw, null, null);  
 
6、ListView去掉下拉条:
 
方法一:在xml属性中设置
 
 android:scrollbars="none"
 方法二:在代码中设置:
 
 listView.setVerticalScrollBarEnabled(false);
 
7、设置Activity的风格:
 
 //将Activity设置成半透明的效果
 android:theme="@android:style/Theme.Translucent"  
 //将Activity设置成对话框的样式  
 android:theme="@android:style/Theme.Dialog"  <span style="font-family: Arial, Helvetica, sans-serif; white-space: normal; ">  <wbr>  <wbr> </wbr></wbr></span>
 
8、创建一个背景模糊的Widow,且将对话框放在前景
 
 Window window = dialog.getWindow();
 window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND,WindowManager.LayoutParams.FLAG_BLUR_BEHIND);  
 
9、list滚动时出现黑色底的问题:
 
解决方法:
 方法一:
 在XML中设置android:cacheColorHint="#00000000"
 
方法二:
 在代码中设置listView.setCacheColorHint(0);
 
10、编辑框中指定输入的类型,设置属性digits即可:
 
例:只允许输入数字
 android:digits="0123456789"  或  android:digits="integer"   或  android:digits="num"
 
11、利用反射机制,获取drawable文件夹下的图片名称:
 
 Field[] fields = R.drawable.class.getDeclaredFields();
 for(Field field:fields){
     if(!"icon".equals(field.getName())){
         sb.append(field.getName() + "\t");
     }
 }
 mTextView.setText(sb.toString());
 
12、缓冲流播放MP3:
 
 MediaPlayer player = new MediaPlayer();
 try {
     player.setDataSource(WebMusic.this, Uri.parse("http://stream15.a8.com/a8space/2010/12/30/2010123002225125942.mp3"));
     player.prepare();
     player.start();
 } catch (IllegalArgumentException e) {
     e.printStackTrace();
 } catch (SecurityException e) {
     e.printStackTrace();
 } catch (IllegalStateException e) {
     e.printStackTrace();
 } catch (IOException e) {
     e.printStackTrace();
 }
 
13、下面的代码可以用来点亮屏幕:
 
 PowerManager pm = (PowerManager)getSystemService(POWER_SERVICE);
 mWakelock = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP |PowerManager.SCREEN_DIM_WAKE_LOCK, "SimpleTimer");
 mWakelock.acquire();
 ...............
 mWakelock.release();
 
下面的代码用来屏幕解锁:
 
 KeyguardManager keyguardManager = (KeyguardManager)getSystemService(KEYGUARD_SERVICE);
 KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("");
 BkeyguardLock.disableKeyguard();
 
使用这两段代码,需要在AndroidManifest文件中加入以下权限:
 
 <uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
 <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
 
14、android 跑马灯效果做如下设置即可:
 
 android:scrollHorizontally="true"    
 android:marqueeRepeatLimit="marquee_forever"    
 android:ellipsize="marquee"    
 android:focusable="true"    
 android:focusableInTouchMode="true"    
 android:singleLine="true"
 
15、拦截短信:
     当android系统接收到短信时,会发送一个广播BroadcastReceiver,这个广播是以有序广播的形式发送的。
     所谓的有序广播就是广播发出后,接收者是按照设置的优先级一个一个接着接收,前面的接收者可以选择是否终止这条广播以使后面的接收者接收不到,而普遍广播发送 后所有的接收者都能同时接到,但是不能终止这条广播,也不能将它的处理结果传递给下个接收者。
     sms拦截就是通过实现一个BroadcastReceiver并将其的优先级设置的比系统sms接收者高。
     android:priority就是设置优先级的,设置为100即可:
 
  <receiver android:name="InterceptSMS">
     <intent-filter android:priority="100">
         <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
     </intent-filter>
 </receiver>
 
16、如果在文件夹下选择视频文件时,想调用自己的播放器,需要在Manifest.xml中设置过滤器,设置如下:
 
  <intent-filter>
     <action android:name="android.intent.action.VIEW" />
     <category android:name="android.intent.category.DEFAULT"/>
     <data android:mimeType="video/*"/>
 </intent-filter>
 
如果想在浏览器中调用自己的播放器,设置如下:
 
 <intent-filter>
     <action android:name="android.intent.action.VIEW" />
     <category android:name="android.intent.category.DEFAULT"/>
     <category android:name="android.intent.category.BROWSABLE" />
     <data android:mimeType="video/*" android:scheme="http"/>
 </intent-filter>
 
 
 
如果两者都要实现的话,就必须配两个过滤器。
 
17、显示图片时,用mImageView.setScaleType(ImageView.ScaleType.FIT_XY); 可以填充整个区域。
 
18、保持屏幕长开:
 
 getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
 
开启、关闭屏幕时发送的广播:
 
 <receiver android:name=".MyBroadcastReceiver" android:enabled="true"&g

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,