zoukankan      html  css  js  c++  java
  • Android开发笔记

    1.当我们直接使用一个ImageButton的时候,直接给它设置图片的时候,它出来是这个样子的:

    可以看到有一个灰色的边框,这个太难看了,如何去掉这个边框呢,加入下面的这一行代码就可以了:

    android:background="#00000000"
    

    在运行看看效果,贴图如下:

    那我们如何来设置一个ImageButoon的按下和抬起的效果呢,在这里我们需要定制一下它的主题文件,主题文件的模板如下:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    
        <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的主题,模板如下:

    <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文件如下:

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <color name="transparent_background">#80000000</color>
    </resources>
    

    在这里说一下这个颜色值的构成,这个颜色一共有8位组成,其中前两位比较重要这个是用来描述透明度的,后面的6位就是大家熟悉的RGB方式了,在这里就不说了。

    定义了以上的内容,那我们该如何使用呢,我们以ExampleActivity.java这个文件为例:

    第一步需要在AndroidMainifest.xml里注册一下吧,内容如下:

     <activity 
                android:name="com.example.test.ExampleActivity"
                android:theme="@android:style/Theme.Translucent" 
     ></activity>
    

    在这里定了之后,activity就知道引用这个主题了,在这里设置了以后,我们还需要在ExampleActivity的onCreate方法中加入一下的代码:

    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);

    至于为什么大家去看文档吧

  • 相关阅读:
    mysql 递归查询sql语句的实现
    Windows安装MySQL-5.6.13免安装版配置方法
    URL中的特殊字符处理
    Java序列化与反序列化
    url特殊字符转义及解决方法
    CentOs Mysql主从复制与读写分离
    java 转义特殊字符
    List列表中根据某一个字段,进行去重
    Spring定时任务的几种实现Quartz Timer task
    文件操作
  • 原文地址:https://www.cnblogs.com/jjxxjnzy/p/3640970.html
Copyright © 2011-2022 走看看