如何在Android的一个图像视图中插入2个图像,每隔5秒切换一次图像

时间:2012-06-08 06:09:27

标签: android android-imageview

我想在Android中创建一个横幅,在一个ImageView中有两个不同的图像,每5秒钟图像应该一个接一个地交替。

2 个答案:

答案 0 :(得分:1)

使用2个图像视图,并将图像设置为该图像视图,并通过默认使图像视图2在5秒后消失,使imagevew1消失,将imageview2视为可见,反之为每5秒

答案 1 :(得分:0)

像这样创建自定义View

public static class MyBannerView extends View
{
   private int width;
   private int height;
   private Bitmap bitmap;

public RenderView(Context context)
    {
        super(context);
        init();
    }

public RenderView(Context context, AttributeSet attrs)
    {
        super(context, attrs);
        init();
    }
    public RenderView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        init();
    }

    private void init()
    {
        //anything you might need here
    }

    //This method is called when the View changes size like on rotation
    protected void onSizeChanged (int w, int h, int oldw, int oldh) 
    {

    width = w; //this will let you keep track of width and height should you need it.
    height = h;

    }

    protected void updateMyBanner(Bitmap b)
    {
     bitmap = b;
     invalidate(); // This will force your view to redraw itself;
    }

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);       
            //there are four different methods for drawBitmap pick the one that
            // suites your needs the best
            canvas.drawBitmap(params which will include bitmap) 

        }

}

现在,您可以通过某种方式将此视图放置在布局中,并且每隔5秒钟就会使用位图调用updateMyBanner(位图b)或其他任何内容。您可以创建AsyncTask来处理此问题,也可以使用Handler对象并创建一个Runnable来调用它。

重要的是要记住,您只能通过主活动线程触摸UI,因此如果您选择使用线程,则需要在主线程上使用Handler来实际执行更新。