我想在Android中创建一个横幅,在一个ImageView中有两个不同的图像,每5秒钟图像应该一个接一个地交替。
答案 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来实际执行更新。