首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NetworkImageView的访问图像路径

NetworkImageView的访问图像路径
EN

Stack Overflow用户
提问于 2015-07-17 03:44:33
回答 2查看 469关注 0票数 0

我正在尝试获取NetworkImageView表单的图像路径( ListView ),但它返回null。在我的MainActivity.java中,我使用以下内容:

代码语言:javascript
复制
   listView.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      // get the title
      String _movieTitle = ((TextView) view.findViewById(R.id.title)).getText().toString();
      // send the title
      myIntent.putExtra("title", _movieTitle) ;

      // get the image path
      NetworkImageView v = (NetworkImageView) view.findViewById(R.id.thumbnail);
      String imgUrl = (String) v.getTag();
      ....
      // just for testing (works fine)
      System.out.print("title is " + _movieTitle);
      // image path is (returns null)
      System.out.print("Image path is " + imgUrl);
    }
}

adapter.java的内容如下:

代码语言:javascript
复制
public View getView(int position, View convertView, ViewGroup parent) {

        if (inflater == null)
            inflater = (LayoutInflater) activity
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        if (convertView == null)
            convertView = inflater.inflate(R.layout.list_row, null);

        if (imageLoader == null)
            imageLoader = AppController.getInstance().getImageLoader();
        NetworkImageView thumbNail = (NetworkImageView) convertView.findViewById(R.id.thumbnail);
        TextView title = (TextView) convertView.findViewById(R.id.title);
        ....
        // getting movie data for the row
        Movie m = movieItems.get(position);

       // thumbnail image
       thumbNail.setImageUrl(m.getThumbnailUrl(), imageLoader);

       // title
       title.setText(m.getTitle());

list.xml的内容:

代码语言:javascript
复制
 <!-- Thumbnail Image -->
    <com.android.volley.toolbox.NetworkImageView
        android:id="@+id/thumbnail"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="8dp" />

    <!-- Movie Title -->
    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/thumbnail"
        android:layout_toRightOf="@+id/thumbnail"
        android:textSize="@dimen/title"
        android:textStyle="bold" />

不确定为什么在MainActivity.java中返回的图像路径为null。有人能看看这个,看看我做错了什么吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-17 06:11:18

为什么会有太多的不必要?只需做String imageUrl = NetworkImageView.getImageURL();

票数 1
EN

Stack Overflow用户

发布于 2015-07-17 05:05:17

新答案。

调用view.tag ()时设置setImageUrl

在adapter.java中

代码语言:javascript
复制
String imgUrl = m.getThumbnailUrl();
thumbNail.setImageUrl(imgUrl, imageLoader);
thumbNail.setTag(imgUrl);

我检查了当前(主树)版本的NetworkImageView,它没有设置标记(总是null)。

老答案。

MainActivity.java

字符串imgUrl = ( String ) v.getTag();

磨成

代码语言:javascript
复制
ImageContainer c = (ImageContainer) v.getTag();
String imgUrl = (null == c) ? "" : c.getRequestUrl();

来自NetworkImageView

代码语言:javascript
复制
NetworkImageView.setImageUrl() or onLayout() calls
NetworkImageView.loadImageIfNecessary() {
    ...
    ImageContainer newContainer = mImageLoader.get(mUrl, ...
    setTag(newContainer);
    ...
}

来自NetworkImageView

代码语言:javascript
复制
public class NetworkImageView extends ImageView {
/** The URL of the network image to load */
private String mUrl;
...

ImageContainer oldContainer = (ImageContainer) getTag();
// if there was an old request in this view, check if it needs to be canceled.
if (oldContainer != null && oldContainer.getRequestUrl() != null) {
    if (oldContainer.getRequestUrl().equals(mUrl)) {
    // if the request is from the same URL, return.
    return;
...
}

这表明"oldContainer.getRequestUrl()“可以与"mUrl”进行对比,它意味着getTag().getRequestUrl()返回url。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31468084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档