2012-07-08 34 views
0

有必要下载图像(在SDcard上),然后就使用它? 如果没有,这是怎么回事? 我有图像存储和图像显示在PagerView(图像加载从互联网)。我需要从PagerView中选择一张图片并将其放在背景(墙纸)上。 我无法在ImagePagerActivity中添加用于将图像添加到背景的按钮。 错误:E/AndroidRuntime(14608):java.lang.RuntimeException:无法启动活动ComponentInfo {down.load.ascetix/down.load.ascetix.ImagePagerActivity}:java.lang.ClassCastException:down.load.ascetix.ImagePagerActivity 。如何将在PagerView中显示的图像添加到背景中?


ImagePagerActivity:


public class ImagePagerActivity extends BaseActivity { 
    private ViewPager pager; 
    private DisplayImageOptions options; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.ac_image_pager); 


     Bundle bundle = getIntent().getExtras(); 
     String[] imageUrls = bundle.getStringArray(Extra.IMAGES); 
     int pagerPosition = bundle.getInt(Extra.IMAGE_POSITION, 0); 
     options = new DisplayImageOptions.Builder() 
      .showImageForEmptyUri(R.drawable.image_for_empty_url) 
      .cacheOnDisc() 
      .imageScaleType(ImageScaleType.EXACT) 
      .build(); 
     pager = (ViewPager) findViewById(R.id.pager); 
     pager.setAdapter(new ImagePagerAdapter(imageUrls)); 
     pager.setCurrentItem(pagerPosition); 

      } 
    @Override 
    protected void onStop() { 
     imageLoader.stop(); 
     super.onStop(); 
    } 
    private class ImagePagerAdapter extends PagerAdapter { 
     private String[] images; 
     private LayoutInflater inflater; 

     ImagePagerAdapter(String[] images) { 
      this.images = images; 
      inflater = getLayoutInflater(); 
     } 

     public void destroyItem(View container, int position, Object object) { 
      ((ViewPager) container).removeView((View) object); 
     } 

     public void finishUpdate(View container) { 
     } 

     public int getCount() { 
      return images.length; 
     } 

     public Object instantiateItem(View view, int position) { 
      final FrameLayout imageLayout = (FrameLayout) inflater.inflate(R.layout.item_pager_image, null); 
      final ImageView imageView = (ImageView) imageLayout.findViewById(R.id.image); 
      final ProgressBar spinner = (ProgressBar) imageLayout.findViewById(R.id.loading); 
      imageLoader.displayImage(images[position], imageView, options, new ImageLoadingListener() { 

       public void onLoadingStarted() { 
        spinner.setVisibility(View.VISIBLE); 
       } 

       public void onLoadingFailed(FailReason failReason) { 
        String message = null; 
        switch (failReason) { 
         case IO_ERROR: 
          message = "Input/Output error"; 
          break; 
         case OUT_OF_MEMORY: 
          message = "Out Of Memory error"; 
          break; 
         case UNKNOWN: 
          message = "Unknown error"; 
          break; 
        } 
        Toast.makeText(ImagePagerActivity.this, message, Toast.LENGTH_SHORT).show(); 
        spinner.setVisibility(View.GONE); 
        imageView.setImageResource(android.R.drawable.ic_delete); 
       } 

       public void onLoadingComplete() { 
        spinner.setVisibility(View.GONE); 
        Animation anim = AnimationUtils.loadAnimation(ImagePagerActivity.this, R.anim.fade_in); 
        imageView.setAnimation(anim); 
        anim.start(); 
       } 

       public void onLoadingCancelled() { 
        // Do nothing 
       } 
      }); 
      ((ViewPager) view).addView(imageLayout, 0); 
      return imageLayout; 
     } 

     public boolean isViewFromObject(View view, Object object) { 
      return view.equals(object); 
     } 

     public void restoreState(Parcelable state, ClassLoader loader) { 
     } 

     public Parcelable saveState() { 
      return null; 
     } 

     public void startUpdate(View container) { 
     } 
    } 
} 

我的.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="1dip"> 

    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:adjustViewBounds="true" /> 

    <ProgressBar 
     android:id="@+id/loading" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:visibility="gone" /> 

</FrameLayout> 

感谢。

+0

是你想给图像添加到您的应用程序的背景,或到android的壁纸? – 2012-07-08 22:25:40

+0

去android的壁纸。 – Asc 2012-07-09 07:02:54

回答