我正在创建一个Android应用程序,我一度陷入困境。我希望显示在Facebook时间线中显示的帖子。邮政可能有图像或可能没有。我为其他帖子元素创建了卡片视图,我可以在帖子中显示它们。我有从服务器发送的图像链接的帖子图像,现在我想下载图像并显示在其中有图像的特定帖子。我怎样才能做到这一点?如果用户有10个帖子,则可能有一个或两个图像。如何检查哪个帖子有图像,然后在下载后在该帖子中显示图像。任何人都可以帮助我。
如果您需要更多信息,请与我们联系。我的卡片视图如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
card_view:cardCornerRadius="4dp">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imageViewUser"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/human_image"/>
<TextView
android:id="@+id/textViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/imageViewUser"
android:layout_toEndOf="@+id/imageViewUser"
android:textSize="18sp"
android:text="titleText"
android:layout_marginLeft="10dp"
android:layout_marginStart="10dp"/>
<TextView
android:id="@+id/textViewNoOfDays"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewTitle"
android:textSize="14sp"
android:layout_marginLeft="10dp"
android:text="No of Days"
android:layout_toRightOf="@+id/imageViewUser"
android:layout_alignBottom="@+id/imageViewUser"/>
<TextView
android:id="@+id/textViewPostDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageViewUser"
android:layout_marginTop="20dp"
android:text="ABCDE"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"/>
<View
android:layout_width="fill_parent"
android:layout_height="2dp"
android:background="#c0c0c0"
android:layout_below="@+id/postImage"
android:layout_marginTop="10dp"/>
<ImageButton
android:id="@+id/imageButtonPin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@mipmap/ic_pin_grey600_18dp"/>
<ImageView
android:id="@+id/postImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textViewPostDescription"
/>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
答案 0 :(得分:1)
这就是我设法让它发挥作用的方式。
适配器类:
public class StoriesAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
private List<Success> successList;
ImageLoader imageLoader = AppController.getInstance().getImageLoader();
private Context mContext;
public StoriesAdapter(Context context, List<Success> successList) {
this.successList = successList;
this.mContext = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.success_list, parent, false);
StoryItemViewHolder vh = new StoryItemViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
if (imageLoader == null)
imageLoader = AppController.getInstance().getImageLoader();
final Success success = successList.get(position);
StoryItemViewHolder holder = (StoryItemViewHolder) viewHolder;
// Feed image
if (!success.getThumbnailUrl().equals("null")) {//check if null
holder.thumbNail.setImageUrl(success.getThumbnailUrl(), imageLoader);
holder.thumbNail.setVisibility(View.VISIBLE);
holder.thumbNail.setResponseObserver(new FeedImageView.ResponseObserver() {
@Override
public void onError() {
}
@Override
public void onSuccess() {
}
});
} else {
holder.thumbNail.setVisibility(View.GONE);
}
}
@Override
public int getItemCount() {
return (null != successList ? successList.size() : 0);
}
}
viewHolder:
public class StoryItemViewHolder extends RecyclerView.ViewHolder {
public FeedImageView thumbNail;
public StoryItemViewHolder(View view) {
super(view);
this.thumbNail= (FeedImageView) view.findViewById(R.id.newsImage);
}
}
答案 1 :(得分:0)
我认为这是你要找的那个,facebook
比如cardview
。它测试从服务器获取的图像是null
。这也是对图像大小的响应。