【问题标题】:Display only image post from Tumblr blog in android app在 Android 应用中仅显示来自 Tumblr 博客的图片帖子
【发布时间】:2015-10-05 08:51:44
【问题描述】:

我正在制作一个应用程序,该应用程序将使用具有交错布局的 RecyclerView 显示图片。我想从 tumblr 博客中提取图像并在 recyclerView 中实现它们。我已经注册了我的应用并收到了 OAuth Consumer Key 和 Secret Key。现在,我是新手,我不确定如何将此代码实现到我设置的 recyclerView 中。这就是我想要完成的全部。只需将图像显示在应用程序上即可。无需登录。功能不多,只显示图片。

当我选择 OAuth 身份验证选项时,我得到了这个

// Authenticate via OAuth
JumblrClient client = new JumblrClient("key");
client.setToken("key");

// Make the request
Map<String, Object> params = new HashMap<String, Object>();
params.put("type", "photo");
List<Post> posts = client.blogPosts("url", params);

我在选择 API 密钥身份验证选项时得到了这个

// Authenticate via API Key
JumblrClient client = new JumblrClient("key");

// Make the request
Map<String, Object> params = new HashMap<String, Object>();
params.put("type", "photo");
List<Post> posts = client.blogPosts("url", params);

有一个 JSON 格式的示例输出不提供 URL,因此我无法在应用程序中解析 JSON。我只剩下这个 java 代码,我正在学习的教程是使用 JSON HERE

【问题讨论】:

    标签: android json oauth


    【解决方案1】:

    首先,您需要为回收站视图创建一个适配器。

    请注意,在代码中我使用 picasso 库来获取图像。所以一定要把它包含在你的 gradle 文件中。

    Recycler View Adaptor 的示例代码

    package com.sample.demo.adaptor;
    
    import android.content.Context;
    import android.net.Uri;
    import android.support.v7.widget.RecyclerView;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import com.squareup.picasso.Picasso;
    
    import java.util.List;
    
    
    public class ImagesRecyclerViewAdaptor extends RecyclerView.Adapter<ImagesRecyclerViewAdaptor.ImagesViewHolder> {
    
        private List<Post> posts;
    
        public ImagesRecyclerViewAdaptor(List<Post> _posts) {
            this.posts = _posts;
        }
    
        @Override
        public int getItemCount() {
            return posts.size();
        }
    
        @Override
        public void onBindViewHolder(ImagesViewHolder imageViewHolder, int i) {
            Post ci = posts.get(i);
            if (ci != null) {
    
                // EXTRACT THE URL FROM POST NOT SURE WHAT FUNCTION TO USE
                Uri uri = Uri.parse();
                Context context = imageViewHolder.vPostImage.getContext();
                Picasso.with(context).load(uri).into(imageViewHolder.vPostImage);
            }
        }
    
        @Override
        public ImagesViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
            View itemView = LayoutInflater.
                    from(viewGroup.getContext()).
                    inflate(R.layout.image_cardview, viewGroup, false);
    
            ImagesViewHolder viewHolder = new ImagesViewHolder(itemView);
            return viewHolder;
        }
    
        public static class ImagesViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
            protected ImageView vPostImage;
    
            public ImagesViewHolder(View v) {
                super(v);
                v.setOnClickListener(this);
    
                vPostImage = (ImageView) v.findViewById(R.id.card_hotel_image);
            }
    
            @Override
            public void onClick(View v) {
    
            }
        }
    }
    

    来自您的主要活动或片段调用

    // Authenticate via API Key
    JumblrClient client = new JumblrClient("key");
    
    // Make the request
    Map<String, Object> params = new HashMap<String, Object>();
    params.put("type", "photo");
    List<Post> posts = client.blogPosts("url", params);
    
    final LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    
    RecyclerView imageList = (RecyclerView) rootView.findViewById(R.id.imageList);
    imageList.setHasFixedSize(true);
    imageList.setLayoutManager(layoutManager);
    
    ImagesRecyclerViewAdaptor imageAdaptor = new ImagesRecyclerViewAdaptor(posts);
    imageList.setAdapter(imageAdaptor);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多