zoukankan      html  css  js  c++  java
  • Android线程处理之Handler总结

      上一篇为大家介绍了如何通过Handler对象把Message数据发送到主线程,我想大家一定都已经掌握了,本篇我将以一个例子的方式为大家总结一下Handler的使用,例子是通过Handler实现一个图片自动改变的效果,一般我们都是通过Viewpage来实现这个效果,不过本篇我们就一起来学习一下如何通过Handler实现这个效果吧。

      开始之前我们需要准备几张用来更新切换的图片,让后把这些图片放到res下面的drawable-hdpi下就可以了。有了这些我们就可以开始我们的效果实现了:

     1、布局文件:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="${relativePackage}.${activityClass}" >
    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="300px"
            android:layout_height="300px"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="87dp"
            android:src="@drawable/abc_ab_share_pack_holo_light" />
    
        <Button
            android:id="@+id/stop"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/imgButton"
            android:layout_alignParentTop="true"
            android:layout_marginTop="36dp"
            android:text="停止切换" />
    
    </RelativeLayout>

      2、我们Activity代码:

    public class ImgActivity extends Activity {
    
        private ImageView imageView;
        private Button stop;
        private Handler handler = new Handler();
        private int ImageAll [] = {R.drawable.download1, R.drawable.download2, R.drawable.download3}; 
        private int index = 1;
        private MyRunable myRunable = new MyRunable();
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_img);
            stop = (Button) findViewById(R.id.stop);
            imageView = (ImageView) findViewById(R.id.imageView1);
            
            stop.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    handler.removeCallbacks(myRunable);//停止切换
                }
            });
            handler.postDelayed(myRunable, 1000);
        }
        
        class MyRunable implements Runnable{
            @Override
            public void run() {
                index = index%3;
                imageView.setImageResource(ImageAll[index]);
                index++;
                handler.postDelayed(myRunable, 1000);
            }
        }
    }

      好了我们的实例就完成了,简单为大家介绍一下代码:

      index = index%3;:控制我们的图片切换
      handler.postDelayed(myRunable, 1000);:每隔1s执行我们的myRunable对象
      
      handler.removeCallbacks(myRunable);:移除我们的myRunable对象,停止执行

      ok我们的实例效果已经为大家介绍完毕,大家可以自己写一下,很有趣呦!
     
  • 相关阅读:
    大哥带我走渗透8--CSRF的应用
    大哥带我走渗透7----解析漏洞
    大哥带我走渗透6(下)---文件上传
    视频学习XSS
    大哥带我走渗透5--南方数据
    大哥带我走渗透4(中)----oracle报错注入
    大哥带我走渗透ii--时间盲注,布尔盲注
    SQL语言基础和数据库操作
    less-7
    less-6
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/4441123.html
Copyright © 2011-2022 走看看