【问题标题】:how to show my url images in full screen?如何全屏显示我的网址图片?
【发布时间】:2012-03-29 11:38:33
【问题描述】:

我创建了一个网格视图应用程序,它现在可以在网格视图中显示所有图像。现在我正在尝试全屏显示所选图像,但出现错误。我的网格视图图像在 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);
    }
        });
    }
}

我发布了我的完整源代码.....

【问题讨论】:

    标签: android gridview imageview


    【解决方案1】:

    首先:GridViewConfig 确实不是您的 ImageAdapter 的一个字段。

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

    它不起作用:getResim_list() 返回 ArrayList,它包含字符串值 NOT int

    你可以尝试改变:

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

    但在我看来,您应该重写所有代码。主要问题:图纸必须在单独的线程中加载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2011-06-07
      • 2013-03-28
      • 1970-01-01
      相关资源
      最近更新 更多