在android平台上我, 有一组图片,我想连续的显示这组图,达到动画的效果,显示完一次循环后,如果用户点击了下一组按钮,就显示下一组图,否则,没隔1s重复显示之前的“动画”。请问该怎么解决呢? 我现在用的是imageview,在timer控件中每隔 1s 就执行一个显示任务,任务是显示我的一组图片,每显示一张sleep(100), 相当于想要每秒10帧。可是图片根本不会更新,执行过程中连我的下一组按钮也看不见了。我用了handler处理消息机制的。谢谢啊!
解决方案 »
- 布局模式中出现的疑惑的问题
- Android 图片显示
- 求一个Android Activity跳转的例子,在线等
- Android 调用系统摄像头问题
- Android里面ComponentName这个类没有clone这个方法
- 为什么没有一个关于android App Widget的详尽的Example呢?
- 使用 Handler更新界面出错
- android图像编辑如何实现撤销重做功能
- 想找一个自定义ImageView控件用来显示网络图片的缩略图
- The connection to adb is down, and a severe error has occured
- Android 应该程序开机启动如何用复选框来控制。
- Dialog去掉标题栏
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();
}
}
哥这里有一个从服务器读取并显示图片,你看对你有帮助不
class ScheduleRunTask extends TimerTask {
public void run() {
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}
Handler handler = new Handler(){ public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
try
{
for(int i=0;i<picPath.size();i++)
{
inputStream = new FileInputStream(picPath.get(i));
bmp = BitmapFactory.decodeStream(inputStream);
imageView.setImageBitmap(bmp);
Thread.sleep(100);
}
}
catch(Exception ex)
{
System.out.print(ex);
}
break;
}
super.handleMessage(msg);
} };运行的代码:new CRunCount(handler).start();
Handler uiHandle;
public CRunCount(Handler handle)
{
uiHandle=handle;
}
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
Message message = new Message();
message.what = 1;
handler.sendMessage(message);
}
}
可以考虑把每一组图片做成一个逐帧动画,思路应该很清晰。
http://www.cnblogs.com/obullxl/archive/2011/06/10/android-animation-frame-dance.html