2012-03-29 2 views
0

Я создал одно приложение с сеткой, оно отлично работает, показывая все изображения в виде сетки. теперь я пытаюсь отобразить выбранное изображение в полноэкранном режиме, но я получаю ошибку. мои изображения в виде сетки загружаются по ссылке URL. моя ссылка url хранится в списке массивов. как решить эту ошибку? Имя класса ошибка FullImageActivity.classКак показать мои изображения в полном экране?

ошибка: imageAdapter1.GridViewConfig cannot be resolved or is not a field

линия ошибка:

imageView.setImageResource(imageAdapter1.GridViewConfig.getResim_list().get(position)); 

это мое кодирование:

public class FullImageActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.full_image); 

     // get intent data 
     Intent i = getIntent(); 

     // Selected image id 
     int position = i.getExtras().getInt("id"); 
     ImageAdapter imageAdapter1 = new ImageAdapter(this); 

     ImageView imageView = (ImageView) findViewById(R.id.full_image_view); 
     imageView.setImageResource(imageAdapter1.GridViewConfig.getResim_list().get(position)); 
    } 

} 

ImageAdapter.class

public class ImageAdapter extends BaseAdapter implements ListAdapter { 


    private Context context; 
    public ImageAdapter(Context context) { 
     super(); 
     this.context = context; 
     //Listeye image url si ekliyor 
     GridViewConfig.addImageUrls(); 
    } 


    @Override 
    public int getCount() { 
     return GridViewConfig.getResim_list().size(); 
    } 

    @Override 
    public Object getItem(int position) { 

     return GridViewConfig.getResim_list().get(position); 
    } 

    @Override 
    public long getItemId(int position) { 

     return position; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if(convertView==null) 
     { 
      imageView=new ImageView(context.getApplicationContext()); 
      //imageView.setImageURI(Uri.withAppendedPath(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, ""+ id)); 
      imageView.setLayoutParams(new GridView.LayoutParams(100,100)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(5,5,5,5); 
     }else{ 
      imageView=(ImageView)convertView; 
     } 
     imageView.setImageDrawable(LoadImageFromURL(GridViewConfig.getResim_list().get(position))); 
     return imageView; 
    } 

//Internetten imageleri stream olarak cekip drawable olsurturuyor. 
    private Drawable LoadImageFromURL(String url) 
    { 
    try 
    { 
    InputStream is = (InputStream) new URL(url).getContent(); 
    Drawable d = Drawable.createFromStream(is, "src"); 
    return d; 
    }catch (Exception e) { 
    System.out.println(e); 
    return null; 
    } 
    } 

} 

GridViewconfig.class

public class GridViewConfig { 
    private static ArrayList<String> resim_list=new ArrayList<String>(); 
    public static int[] getResim_list; 

    public static ArrayList<String> getResim_list() { 
     return resim_list; 
    } 

    public static void setResim_list(ArrayList<String> resim_list) { 
     GridViewConfig.resim_list = resim_list; 
    } 

    public static void addImageUrls(){ 
     resim_list.add("http://igen.com/Images/Home/Client-Logo.png"); 


    } 
} 

MyGridView.class

public class MyGridView extends Activity { 
    private GridView girGridView; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     girGridView=(GridView) findViewById(R.id.gridView1_bir); 
//ListView gibi buna da adapter set ediliyor. 
     girGridView.setAdapter(new ImageAdapter(getApplicationContext())); 

     girGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View view, int position,long arg3) { 

        // Sending image id to FullScreenActivity 
       Intent i = new Intent(getApplicationContext(), FullImageActivity.class); 
       // passing array index 
       i.putExtra("id", position); 
       startActivity(i); 
    } 
     }); 
    } 
} 

Я отправил свой полный исходный код .....

ответ

0

Прежде всего: GridViewConfig действительно не поле вашего ImageAdapter ,

Второе: imageView.setImageResource(imageAdapter1.GridViewConfig.getResim_list().get(position));

он не будет работать: getResim_list() возвращает ArrayList, он содержит строковые значения НЕ ИНТ

Вы можете попробовать изменить:

public class FullImageActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.full_image); 

     // get intent data 
     Intent i = getIntent(); 

     // Selected image id 
     int position = i.getExtras().getInt("id"); 
     ImageView imageView = (ImageView) findViewById(R.id.full_image_view); 
     GridViewConfig.addImageUrls(); 
     imageView.setImageDravable(LoadImageFromURL(GridViewConfig.getResim_list().get(position))); 
    } 

    private Drawable LoadImageFromURL(String url) { 
     .... 
    } 

} 

Но, на мой взгляд, вы должен переписать весь ваш код. Основная проблема: чертежи должны быть загружены в отдельный поток.

+0

ok appserv pls скажите мне, как показать изображения в полноэкранном режиме ... – balaji

+0

добавьте некоторые изменения. –

Смежные вопросы