Android开发笔记
1.当我们直接使用一个ImageButton的时候,直接给它设置图片的时候,它出来是这个样子的:
可以看到有一个灰色的边框,这个太难看了,如何去掉这个边框呢,加入下面的这一行代码就可以了:
1 |
android:background= "#00000000" |
在运行看看效果,贴图如下:
那我们如何来设置一个ImageButoon的按下和抬起的效果呢,在这里我们需要定制一下它的主题文件,主题文件的模板如下:
1
2
3
4
5
6
7
8 |
<?xml version= "1.0"
encoding= "utf-8" ?> <item android:drawable= "@drawable/button_clear_focus"
android:state_pressed= "true" ></item> <item android:drawable= "@drawable/button_clear_focus"
android:state_focused= "true" /> <item android:drawable= "@drawable/button_clear" ></item> </selector> |
这个文件一般放在drawable目录下
2.Activity的透明
在开发的时候需要有一个Activity透明,在网上找了,把设置的方式在这里记一下:
首先需要在values的目录下新建一个xml文件,用来描述Activity的主题,模板如下:
1
2
3
4
5
6
7
8 |
<resources> <style name= "Transparent" > <item name= "android:windowBackground" >@color/transparent_background</item> <item name= "android:windowNoTitle" >true</item> <item name= "android:windowIsTranslucent" >true</item> <item name= "android:windowAnimationStyle" >@+android:style/Animation.Translucent</item> </style> </resources> |
在这里引用到了一个颜色值,这个颜色值也是定义在一个xml文件里,xml文件如下:
1
2
3
4 |
<?xml version= "1.0"
encoding= "utf-8" ?> <resources> <color name= "transparent_background" > #800000 00</color> </resources> |
在这里说一下这个颜色值的构成,这个颜色一共有8位组成,其中前两位比较重要这个是用来描述透明度的,后面的6位就是大家熟悉的RGB方式了,在这里就不说了。
定义了以上的内容,那我们该如何使用呢,我们以ExampleActivity.java这个文件为例:
第一步需要在AndroidMainifest.xml里注册一下吧,内容如下:
1
2
3
4 |
<activity android:name= "com.example.test.ExampleActivity" android:theme= "@android:style/Theme.Translucent" ></activity> |
在这里定了之后,activity就知道引用这个主题了,在这里设置了以后,我们还需要在ExampleActivity的onCreate方法中加入一下的代码:
1 |
setTheme(R.style.Transparent); |
需要注意的是这一段代码一定要在setContentView方法之前调用,经过以上的步骤我们就可以使用一个透明的Activity了
3.android中定时器的使用。
1 timer = new Timer(); 2 timer.schedule(new TimerTask() { 3 4 @Override 5 public void run() { 6 // TODO Auto-generated method stub 7 Message msg = new Message(); 8 handler.sendMessage(msg); 9 } 10 }, 3000); 11 12 handler = new Handler() { 13 @Override 14 public void handleMessage(Message msg) { 15 // TODO Auto-generated method stub 16 super.handleMessage(msg); 17 18 Log.d(TAG, "cancel"); 19 20 SettingWelcome.this.finish(); 21 timer.cancel(); 22 } 23 };
4.接受Android的系统广播
在新的组件中需要监听Android一个广播,主要的步骤如下:
在AndroidMainifest中注册一个receiver
继承BroadcastReceiver实现自己的广播接收器
下面贴代码:
1 <receiver 2 android:name="com.test.Broadcast.BootBroadcast"> 3 <intent-filter> 4 <action android:name="android.intent.action.BOOT_COMPLETED" ></action> 5 <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/> 6 </intent-filter> 7 </receiver>
在这里我们需要接收的广播为:系统开机广播,插入输入设备广播
接着我们看下我们实现的receiver代码:
public class BootBroadcast extends BroadcastReceiver{ public void onReceive(Context context, Intent intent) { if(USB_ACTION.equals(intent.getAction())) { UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE); } }
}
当系统发出我们需要的广播是就会调用我们的这一段代码。那我们如何在这一段代码里启动一个Activity呢,在这里需要注意一下,我先贴一下代码:
1 Intent startIntent = new Intent(context,SettingWelcome.class); 2 startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 3 context.startActivity(startIntent);
如果我们要在一个receiver里启动一个Activity,我们一定要调用这个段代码,否则会报错:
1 startIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
至于为什么大家去看文档吧
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。