记录安卓ec图片自动切换的时候出现的傻✘问题

1、最近在做的相册功能,换了一个中配的机器,所以相册功能也在变化,现在要做的就是,点击相册,显示U盘第一张图片,大图方式,几秒不操作之后就会自动切换,手滑动的时候可以切换上一张下一张,点击返回显示不同目录下的图片名称,也可以以小图方式显示,然后点击名称或者小图进入到大图模式,长时间不操作进入自动切换模式。

2、我现在做了一个简单的自动切换。但是出了一个问题

3、下面是代码:

activity的代码:

public class ImageViewAutoSwitch extends Activity {
boolean flag = true;
Button bt_startBroadcast;
Button bt_stopBroadcast;
ImageView iv_showPic;
// 图片数组
int picIds[] = { R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4 };


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.imageviewaotuswtch);
// 找到控件
bt_startBroadcast = (Button) findViewById(R.id.bt_startBroadcast);
bt_stopBroadcast = (Button) findViewById(R.id.bt_stopBroadcast);
iv_showPic = (ImageView) findViewById(R.id.iv_showPic);
// 在activity被创建的时候就启动线程
thread.start();
}


// 点击事件
public void bt(View v) {
switch (v.getId()) {
case R.id.bt_startBroadcast:// 点击开始
flag = true;
Log.d("ppx", "点击开始ooooooooooooooook-----------");
break;


case R.id.bt_stopBroadcast:// 点击暂停
flag = false;
Log.d("ppx", "点击暂停ooooooooooooooook-----------");
break;
}
}


// handler对象
Handler mhandler = new Handler() {
int a = 0;
@Override
public void handleMessage(Message msg) {

super.handleMessage(msg);

                        //最开始我的a赋值是在handleMessage方法里面的,但是没反应,后面看了一下别人的代码,发现是写 在    外面的,于是改了就ok了,但是还是不明白,难道,在thread调用handler的时候只调用了handleMessage方法而不是从new handler开始的吗,留一个问题在这里,以后解决或者各位路过的大佬指教

                        //int a=0;

iv_showPic.setBackgroundResource(picIds[a++ % picIds.length]);
}
};


// 开启一个子线程来做耗时操作
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
if (flag) {
Message msg = mhandler.obtainMessage();
msg.sendToTarget();
}
try {
thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
});

}

xml的代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <ImageView
        android:id="@+id/iv_showPic"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"

        android:layout_gravity="center"

        android:src="@drawable/p1" 

        />


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >


        <Button
            android:id="@+id/bt_startBroadcast"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="bt"
            android:text="开始播放" />


        <Button
            android:id="@+id/bt_stopBroadcast"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:onClick="bt"
            android:text="停止播放" />
    </LinearLayout>


</LinearLayout>

4、然后你拿去运行就会发现,咦怎么感觉怪怪的,后面问了我们赖姐,发现,md,怎么imageview还设置了src,给别人挡住了能看见啥??,然后去掉src,ok,完美,手动兰花指~~

5、新的一天,好好学习,天天开心。

猜你喜欢

转载自blog.csdn.net/qq_39590763/article/details/80757130