当前位置: 代码迷 >> Android >> png图片循环展示
  详细解决方案

png图片循环展示

热度:21   发布时间:2016-05-01 17:43:12.0
png图片循环显示
在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?
  相关解决方案