android几个知识点总结(全屏显示,倒计时,页面切换动画效果,obtainmessage)

1、全屏显示,没有状态栏和标题栏

在androidManifes文件中设置android:theme="@android:style/Theme.NoTitleBar"

在Activity当中设置 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

 WindowManager.LayoutParams.FLAG_FULLSCREEN);

2android倒计时功能的实现(CountDownTimer

    主要是重写onTickonFinsh这两个方法,onFinish()中的代码是计时器结束的时候要做的事情;onTick(Long m)中的代码是你倒计时开始时要做的事情,参数m是直到完成的时间,构造方法中的两个参数中,前者是倒计的时间数,后者是倒计每秒中间的间隔时间,都是以毫秒为单位。例如要倒计时30秒,每秒中间间隔时间是1秒,两个参数可以这样写new CountDownTimer(30000,1000)将后台线程的创建和Handler队列封装成为了一个方便的类调用。 当你想取消的时候使用该对象的cancel()方法就行了。

newCountDownTimer(2000, 1000) {

          @Override

          publicvoid onFinish() {

             // TODO Auto-generatedmethod stub

             Intent intent = new Intent();

             intent.setClass(WelcomeActivity.this, MainDemo.class);

             startActivity(intent);

             int VERSION = Integer.parseInt(android.os.Build.VERSION.SDK);

             if(VERSION>=5) {

             WelcomeActivity.this.overridePendingTransition(R.anim.alpha_in, R.anim.alpha_out);    //WelcomeActivity.this.overridePendingTransition(R.anim.zoomin,R.anim.zoomout);

}

             finish();

          }

          @Override

          publicvoid onTick(long millisUntilFinished) {         

          }      

       }.start(); 

3、activity之间的切换动画效果

       在Android的2.0版本之后,有了一个函数来帮我们实现这个切换动画。也不用定义theme什么的了,这个函数就是overridePendingTransition
这个函数有两个参数,一个参数是第一个activity退出时的动画,另外一个参数则是第二个activity进入时的动画。
这里需要特别说明的是,关于overridePendingTransition这个函数,有两点需要主意:
1.它必需紧挨着startActivity()或者finish()函数之后调用
2.它只在android2.0以及以上版本上适用
----------overridePendingTransition(R.anim.enter, R.anim.exit);//(新Activity进来的动画,旧的退出的动画)

   Intent intent = new Intent();
    intent.setClass(WelcomeActivity.this, MainDemo.class);
    startActivity(intent);
    int VERSION = Integer.parseInt(android.os.Build.VERSION.SDK);
    if(VERSION>=5) {//android2.0版本以上才可以
    WelcomeActivity.this.overridePendingTransition(R.anim.alpha_in, R.anim.alpha_out);
//     WelcomeActivity.this.overridePendingTransition(R.anim.zoomin,R.anim.zoomout);
    //WelcomeActivity.this.overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
    }

4、 handler.obtainMessage()和new Message()的区别

obtainmessage()是从消息池中拿来一个msg 不需要另开辟空间new

new需要重新申请,效率低,obtianmessage可以循环利用;

Message msg = handler.obtainMessage();  

 msg.arg1 = i; 

 msg.sendToTarget();    //message 从handler 类获取,从而可以直接向该handler 对象发送消息

Message msg=new Message(); 

 msg.arg1=i; 

 handler.sendMessage(msg);  //直接调用 handler 的发送消息方法发送消息

 


    

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个使用服务实现倒计时60秒的Android应用程序示例,其中时间将显示在按钮上: 1. 首先,在 `res/layout` 目录下创建一个名为 `activity_main.xml` 的布局文件,添加一个按钮并将其文本设置为“60秒”: ```xml <Button android:id="@+id/btn_countdown" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="60秒" /> ``` 2. 在 `MainActivity.java` 中创建一个服务 `CountdownService` ,并在按钮上设置一个点击事件,用于启动服务: ```java public class MainActivity extends AppCompatActivity { private Button btnCountdown; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnCountdown = findViewById(R.id.btn_countdown); btnCountdown.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startService(new Intent(MainActivity.this, CountdownService.class)); } }); } } ``` 3. 在 `CountdownService.java` 中实现倒计时功能,并使用 `Handler` 将倒计时的剩余秒数发送给 `MainActivity` 的 `Handler`,以更新按钮上的文本: ```java public class CountdownService extends Service { private int countdown = 60; private Handler handler; private Runnable runnable; @Override public void onCreate() { super.onCreate(); handler = new Handler(getMainLooper()); runnable = new Runnable() { @Override public void run() { if (countdown > 0) { countdown--; handler.postDelayed(this, 1000); } updateButton(); } }; } @Override public int onStartCommand(Intent intent, int flags, int startId) { handler.post(runnable); return START_NOT_STICKY; } @Override public void onDestroy() { handler.removeCallbacks(runnable); super.onDestroy(); } @Nullable @Override public IBinder onBind(Intent intent) { return null; } private void updateButton() { Intent intent = new Intent("COUNTDOWN_UPDATE"); intent.putExtra("countdown", countdown); sendBroadcast(intent); } } ``` 4. 最后,在 `MainActivity.java` 中实现一个 `Handler`,用于接收 `CountdownService` 发送的剩余秒数并更新按钮上的文本: ```java public class MainActivity extends AppCompatActivity { private Button btnCountdown; private Handler handler = new Handler() { @Override public void handleMessage(@NonNull Message msg) { int countdown = msg.arg1; btnCountdown.setText(countdown + "秒"); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnCountdown = findViewById(R.id.btn_countdown); btnCountdown.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startService(new Intent(MainActivity.this, CountdownService.class)); } }); IntentFilter filter = new IntentFilter("COUNTDOWN_UPDATE"); registerReceiver(receiver, filter); } @Override protected void onDestroy() { unregisterReceiver(receiver); super.onDestroy(); } private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { int countdown = intent.getIntExtra("countdown", 0); Message msg = handler.obtainMessage(); msg.arg1 = countdown; handler.sendMessage(msg); } }; } ``` 这样,当用户点击按钮时,倒计时将开始,并在按钮上显示剩余的秒数。当倒计时结束时,按钮将显示“0秒”。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值