【问题标题】:NetworkImageView - Displaying more than one image from php fileNetworkImageView - 从 php 文件中显示多个图像
【发布时间】:2014-12-17 04:15:10
【问题描述】:

我正在使用NetworkImageView 在AndroidStudio 中工作,我必须在ListView 中显示下面的PHP 文件中的图像(其中有2 个以上,但在这里列出太长了)。我知道我应该使用GetImageUrl?在我找到的所有示例中,他们都使用了图像 url,但在这种情况下,我会放什么?

或者我必须在ImageLoader 中的某处包含image_url

{
    "image_url": "http://tashdarcy.com/menu/images/1.jpg",
    "record_id": 11868,
    "title": "Congratulations to John on EPSRC funding",
    "date": "08/12/2014",
    "short_info": "A new EPSRC grant has been awarded to Dr John Batchelor as part of a GBP 1.9M project entitled: Adaptive Assistive Rehabilitative Technology"
}

我在列表项的 xml 文件中有这个:

 <com.android.volley.toolbox.NetworkImageView
    android:id="@+id/imageUrl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:scaleType="centerCrop"/>

我在另一个班级有一个imageLoader

  public void onCreate() {
    super.onCreate();

    instance = this;

    reqQueue = Volley.newRequestQueue(getApplicationContext());

    imageLoader = new ImageLoader(reqQueue, new ImageLoader.ImageCache()
    {
        private final LruCache<String, Bitmap> mCache = new LruCache<String, Bitmap>(20);

        public void putBitmap(String url, Bitmap bitmap) {
            mCache.put(url, bitmap);
        }
        public Bitmap getBitmap(String url) {
            return mCache.get(url);

你能告诉我如何实现它吗?我知道它需要进入我的列表类的getView

【问题讨论】:

    标签: android json android-listview imageview


    【解决方案1】:

    我不太确定你的问题是什么......你发布的链接中解释了一切。

    1. 您需要将该 JSON 解析为 POJO 对象
    2. 然后,使用 POJO 对象列表来填充最终填充 ListView 的 ArrayAdapter

    ArrayAdapter 中,您将使用setImageUrl 方法设置单独的NetworkImageView url...例如,这是链接中ArrayAdaptergetView 方法的代码sn-p你发布了...

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
    
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.lv_picasa_row, null);
        }
    
        ViewHolder holder = (ViewHolder) v.getTag(R.id.id_holder);       
    
        if (holder == null) {
            holder = new ViewHolder(v);
            v.setTag(R.id.id_holder, holder);
        }        
    
        PicasaEntry entry = getItem(position);
        if (entry.getThumbnailUrl() != null) {
            holder.image.setImageUrl(entry.getThumbnailUrl(), mImageLoader);
        } else {
            holder.image.setImageResource(R.drawable.no_image);
        }
    
        holder.title.setText(entry.getTitle());
    
        return v;
    }
    

    更具体一点,这里是ArrayAdapter 实现...

    https://github.com/ogrebgr/android_volley_examples/blob/master/src/com/github/volley_examples/misc/PicasaArrayAdapter.java

    如您所见,您可以完全访问源代码示例。这就是你设置图片网址的方式...

    holder.image.setImageUrl(entry.getThumbnailUrl(), mImageLoader);
    

    其中image 是您的NetworkImageView。什么还不清楚?

    【讨论】:

    • 对不起,谢谢您的帮助。如果对您有任何帮助,我编辑了我的帖子,您认为您可以进一步解释一下吗,因为我认为此示例中的实现与我尝试执行的方式不同?
    • @user3360721 抱歉,我已经回答了您的问题,而且您知道不可能以这种问答格式编写完整的解决方案。您应该就特定问题提出问题
    猜你喜欢
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 2013-04-03
    • 2017-08-01
    • 2016-01-13
    相关资源
    最近更新 更多