在android平台上我, 有一组图片,我想连续的显示这组图,达到动画的效果,显示完一次循环后,如果用户点击了下一组按钮,就显示下一组图,否则,没隔1s重复显示之前的“动画”。请问该怎么解决呢?
我现在用的是imageview,在timer控件中每隔 1s 就执行一个显示任务,任务是显示我的一组图片,每显示一张sleep(100), 相当于想要每秒10帧。可是图片根本不会更新,执行过程中连我的下一组按钮也看不见了。我用了handler处理消息机制的。
谢谢啊!
------解决方案--------------------
理论是可以的,timer运行了吗。上代码。
------解决方案--------------------
class Holder {
ImageView img;
//TextView title;
}
public class ButtonAdapter extends BaseAdapter{
List<Bitmap> l = new ArrayList<Bitmap>();
LayoutInflater inflater;
int mGalleryItemBackground;
private Context mContext;
Holder holder;
public ButtonAdapter(Context c)
{
mContext=c;
getPic();
//TypedArray typedArray = obtainStyledAttributes(R.styleable.Gallery);
//mGalleryItemBackground = typedArray.getResourceId(R.styleable.Gallery_android_galleryItemBackground, 0);
}
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
inflater = LayoutInflater.from(mContext);
if (convertView == null) {
convertView = inflater.inflate(
R.layout.toolbar_row, null);
holder = new Holder();
holder.img = (ImageView) convertView
.findViewById(R.id.bar_img);
convertView.setTag(holder);
} else {
holder = (Holder) convertView.getTag();
}
//holder.img.setBackgroundResource(resIds[position % resIds.length]);
if(l.isEmpty()==false&&l.get(1)!=null)
{
holder.img.setImageBitmap(l.get(position%4));
}
else {
holder.img.setBackgroundResource(R.drawable.notconnected);
}
return convertView;
}
private void getPic() {
try{
for(int i=0;i<4;i++){
URL url = new URL("http://202.114.255.72/picture"+"/"+i+".gif");
URLConnection conn = url.openConnection();
//conn.setConnectTimeout(2000);
InputStream in = conn.getInputStream();
l.add( BitmapFactory.decodeStream(in));
}
threadflag=0;
}catch(Exception e){
e.printStackTrace();
}
}
哥这里有一个从服务器读取并显示图片,你看对你有帮助不
------解决方案--------------------
Handler里的方法,是在UI线程里执行的,只有执行完毕,UI线程才能刷新界面
切记:不能在UI线程里能用 循环+sleep 的方式试图去切换界面
建议:
可以考虑把每一组图片做成一个逐帧动画,思路应该很清晰。
------解决方案--------------------
个人愚见,还是用handler消息机制,每次都将字体赋值给textview,实现动态的刷新
------解决方案--------------------
这种连续的动画用Animation配置可以实现的吧,楼主可以看看
------解决方案--------------------
不要用handler 用多线程 OK?