2012-03-29 11 views
0

Ich habe eine Rasteransicht-Anwendung erstellt, es funktioniert jetzt einwandfrei und zeigt alle Bilder in der Rasteransicht an. Jetzt versuche ich das ausgewählte Bild im Vollbildmodus anzuzeigen, bekomme aber einen Fehler. Meine Rasteransicht Bilder werden in URL Link heruntergeladen. Meine URL-Link sind in Array-Liste gespeichert. Wie löst man diesen Fehler? Fehlerklasse Name ist FullImageActivity.classWie zeige ich meine URL-Bilder im Vollbildmodus an?

Fehler: imageAdapter1.GridViewConfig cannot be resolved or is not a field

Fehlerzeile:

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

dies meine Codierung ist:

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); 
    } 
     }); 
    } 
} 

ich meine volle Quellcode geschrieben .....

Antwort

0

Vorweg: GridViewConfig ist in der Tat kein Feld Ihrer ImageAdapter .

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

es wird nicht funktionieren: getResim_list() gibt Arraylist enthält es String-Werte int NICHT

können Sie ändern, versuchen:

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) { 
     .... 
    } 

} 

Aber meiner Meinung nach Sie sollte deinen ganzen Code neu schreiben. Das Hauptproblem: Die Zeichnungen müssen in einen separaten Thread geladen werden.

+0

ok appserv pls sagen mir dann, wie man Bilder im Vollbildmodus zeigt ... – balaji

+0

fügen Sie einige Änderungen hinzu. –

Verwandte Themen