Android有用代码片断(五)

七十一、android自动跳转

有些时候需要类似这样的功能,在一个页面停留2秒后,跳转到另外一个页面!

第一种方法:

[java]  view plain  copy  print  ?
  1. Timer timer = new Timer();
  2. TimerTask timerTask = new TimerTask() {
  3. @Override
  4. public void run() {
  5. // 你要干的活
  6. }
  7. };
  8. timer.schedule(timerTask, 1000 * 2); //2秒后执行
Timer timer = new Timer(); TimerTask timerTask = new TimerTask() { @Override public void run() { // 你要干的活 } }; timer.schedule(timerTask, 1000 * 2); //2秒后执行 
在run()方法里面写上你的跳转就可以了。

第二种方法:

[java]  view plain  copy  print  ?
  1. private final int SPLASH_DISPLAY_LENGHT = 2000;
  2. @Override
  3. public void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  6. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  7. setContentView(R.layout.splash);
  8. new Handler().postDelayed(new Runnable() {
  9. @Override
  10. public void run() {
  11. Intent intent = new Intent(Splash.this, XXX.class);
  12. Splash.this.startActivity(intent);
  13. overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
  14. Splash.this.finish();
  15. }
  16. }, SPLASH_DISPLAY_LENGHT);
  17. }
private final int SPLASH_DISPLAY_LENGHT = 2000; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.splash); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent intent = new Intent(Splash.this, XXX.class); Splash.this.startActivity(intent); overridePendingTransition(R.anim.fade_in, R.anim.fade_out); Splash.this.finish(); } }, SPLASH_DISPLAY_LENGHT); } 
使用handler延迟2秒后跳转。  


七十二、Gally选中高亮状态

没有选中,在GalleryActivity中,设置gallery.setUnselectedAlpha(0.3f); 透明度为0.3

选中,在ImageAdapter的getView(int position, View convertView, ViewGroup parent)中,设置imageview.setBackgroundColor(Color.alpha(1)); 背景色为1 

七十三、TextView颜色设置

[html]  view plain  copy  print  ?
  1. android:textColor //设置文本颜色
  2. android:textColorHighlight //被选中文字的底色,默认为蓝色
  3. android:textColorHint //设置提示信息文字的颜色,默认为灰色。与hint一起使用。
android:textColor //设置文本颜色 android:textColorHighlight //被选中文字的底色,默认为蓝色 android:textColorHint //设置提示信息文字的颜色,默认为灰色。与hint一起使用。 

七十四、Button使用Shape
[java]  view plain  copy  print  ?
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <selector
  3. xmlns:android="http://schemas.android.com/apk/res/android">
  4. <item android:state_pressed="true" >
  5. <shape>
  6. <gradient
  7. android:startColor="#ff8c00"
  8. android:endColor="#FFFFFF"
  9. android:angle="270" />
  10. <stroke
  11. android:width="2dp"
  12. android:color="#dcdcdc" />
  13. <corners
  14. android:radius="2dp" />
  15. <padding
  16. android:left="10dp"
  17. android:top="10dp"
  18. android:right="10dp"
  19. android:bottom="10dp" />
  20. </shape>
  21. </item> <item android:state_focused="true" >
  22. <shape>
  23. <gradient
  24. android:startColor="#ffc2b7"
  25. android:endColor="#ffc2b7"
  26. android:angle="270" />
  27. <stroke
  28. android:width="2dp"
  29. android:color="#dcdcdc" />
  30. <corners
  31. android:radius="2dp" />
  32. <padding
  33. android:left="10dp"
  34. android:top="10dp"
  35. android:right="10dp"
  36. android:bottom="10dp" />
  37. </shape>
  38. </item> <item>
  39. <shape>
  40. <gradient
  41. android:startColor="#ff9d77"
  42. android:endColor="#ff9d77"
  43. android:angle="270" />
  44. <stroke
  45. android:width="2dp"
  46. android:color="#fad3cf" />
  47. <corners
  48. android:radius="2dp" />
  49. <padding
  50. android:left="10dp"
  51. android:top="10dp"
  52. android:right="10dp"
  53. android:bottom="10dp" />
  54. </shape>
  55. </item>
  56. </selector>
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" > <shape> <gradient android:startColor="#ff8c00" android:endColor="#FFFFFF" android:angle="270" /> <stroke android:width="2dp" android:color="#dcdcdc" /> <corners android:radius="2dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item android:state_focused="true" > <shape> <gradient android:startColor="#ffc2b7" android:endColor="#ffc2b7" android:angle="270" /> <stroke android:width="2dp" android:color="#dcdcdc" /> <corners android:radius="2dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> <item> <shape> <gradient android:startColor="#ff9d77" android:endColor="#ff9d77" android:angle="270" /> <stroke android:width="2dp" android:color="#fad3cf" /> <corners android:radius="2dp" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> </shape> </item> </selector> 

七十五、Android Drawable叠加处理方法

大家可能知道Bitmap的叠加处理在Android平台中可以通过Canvas一层一层的画就行了,而Drawable中如何处理呢? 除了使用BitmapDrawable的getBitmap方法将Drawable转换为Bitmap外,今天Android123给大家说下好用简单的LayerDrawable类,LayerDrawable顾名思义就是层图形对象。下面直接用一个简单的代码表示: 

[java]  view plain  copy  print  ?
  1. Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.cwj);
  2. Drawable[] array = new Drawable[3]; array[0] = new PaintDrawable(Color.BLACK); //黑色
  3. array[1] = new PaintDrawable(Color.WHITE); //白色
  4. array[2] = new BitmapDrawable(bm); //位图资源
  5. LayerDrawable ld = new LayerDrawable(array); //参数为上面的Drawable数组
  6. ld.setLayerInset(11111); //第一个参数1代表数组的第二个元素,为白色
  7. ld.setLayerInset(22222); //第一个参数2代表数组的第三个元素,为位图资源
  8. mImageView.setImageDrawable(ld);
Bitmap bm = BitmapFactory.decodeResource(getResources(),R.drawable.cwj); Drawable[] array = new Drawable[3]; array[0] = new PaintDrawable(Color.BLACK); //黑色 array[1] = new PaintDrawable(Color.WHITE); //白色 array[2] = new BitmapDrawable(bm); //位图资源 LayerDrawable ld = new LayerDrawable(array); //参数为上面的Drawable数组 ld.setLayerInset(1, 1, 1, 1, 1); //第一个参数1代表数组的第二个元素,为白色 ld.setLayerInset(2, 2, 2, 2, 2); //第一个参数2代表数组的第三个元素,为位图资源 mImageView.setImageDrawable(ld); 

上面的方法中LayerDrawable是关键,Android开发网提示setLayerInset方法原型为public void setLayerInset (int index, int l, int t, int r, int b) 其中第一个参数为层的索引号,后面的四个参数分别为left、top、right和bottom。对于简单的图片合成我们可以将第一和第二层的PaintDrawable换成BitmapDrawable即可实现简单的图片合成。


七十六、Android发信息时观察者

发信息大致的流程是:

观察者,ContentObserver

观察信息变化,它只能观察所有 就是 :Uri:content://sms/

你点击了发送按钮后,状态还是正在发送,这时这条信息已在你不注意时插入到发件箱中(调用 onChange一次,你可以查一下outbox的内容),当发送成功后(就会打发件箱的临时信息删除 又调用一次 onChange),成功后插入到已发信息sent(这是又会调用 onChange),它会调用三次,所以你们在观察发送信息时会出现onChange出现三次,这个解决方案我暂时只想到两种方案:

[java]  view plain  copy  print  ?
  1. 1:就是在contetnobserver类里定义一个变量 int count=0;
  2. @Override
  3. public void onChange(boolean selfChange) {
  4. count++;
  5. //调用第三次才是已发信息
  6. if(count==3){
  7. //代表发送了一条信息
  8. Log.i("wet""发送了一条信息");
  9. count=0;//以便第下次用
  10. }
  11. 2:还有一个是:
  12. 记录 context.getContentResolver().query(Uri.parse("content://sms/sent"), nullnullnullnull);
  13. 首先记录它上次的条数
  14. 然后再记录它这次的条数,如果改变了,那就代表它改变了
1:就是在contetnobserver类里定义一个变量 int count=0; @Override public void onChange(boolean selfChange) { count++; //调用第三次才是已发信息 if(count==3){ //代表发送了一条信息 Log.i("wet", "发送了一条信息"); count=0;//以便第下次用 } 2:还有一个是: 记录 context.getContentResolver().query(Uri.parse("content://sms/sent"), null, null, null, null); 首先记录它上次的条数 然后再记录它这次的条数,如果改变了,那就代表它改变了 
七十七、Android屏幕解锁和点亮屏幕

最近在做一个闹钟的项目,当闹钟响起的时候需要用到自动解锁和点亮屏幕,因此记录一下解屏幕锁与点亮屏幕的代码:

[java]  view plain  copy  print  ?
  1. KeyguardManager km= (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);//得到键盘锁管理器对象
  2. KeyguardLock kl = km.newKeyguardLock("unLock"); //参数是LogCat里用的Tag
  3. kl.disableKeyguard(); //解锁
  4. PowerManager pm=(PowerManager) getSystemService(Context.POWER_SERVICE);//获取电源管理器对象
  5. PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.SCREEN_DIM_WAKE_LOCK, "bright");
  6. //获取PowerManager.WakeLock对象,后面的参数|表示同时传入两个值,最后的是LogCat里用的Tag
  7. wl.acquire();//点亮屏幕
  8. wl.release();//释放
  9. 要实现自动解锁和点亮屏幕的功能则需要在AndroidManifest.xml添加权限:
  10. <uses-permission android:name="android.permission.WAKE_LOCK" />
  11. <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> 

 


以上5篇均转自网友,目的在于收集以便随时查用,谢谢网友的提供。

内容概要:《2024年中国城市低空经济发展指数报告》由36氪研究院发布,指出低空经济作为新质生产力的代表,已成为中国经济新的增长点。报告从发展环境、资金投入、创新能力、基础支撑和发展成效个维度构建了综合指数评价体系,评估了全国重点城市的低空经济发展状况。北京和深圳在总指数中名列前茅,分别以91.26和84.53的得分领先,展现出强大的资金投入、创新能力和基础支撑。低空经济主要涉及无人机、eVTOL(电动垂直起降飞行器)和直升机等产品,广泛应用于农业、物流、交通、应急救援等领域。政策支持、市场需求和技术进步共同推动了低空经济的快速发展,预计到2026年市场规模将突破万亿元。 适用人群:对低空经济发展感兴趣的政策制定者、投资者、企业和研究人员。 使用场景及目标:①了解低空经济的定义、分类和发展驱动力;②掌握低空经济的主要应用场景和市场规模预测;③评估各城市在低空经济发展中的表现和潜力;④为政策制定、投资决策和企业发展提供参考依据。 其他说明:报告强调了政策监管、产业生态建设和区域融合错位的重要性,提出了加强法律法规建设、人才储备和基础设施建设等建议。低空经济正加速向网络化、智能化、规模化和集聚化方向发展,各地应找准自身比较优势,实现差异化发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值