在我的安卓应用程序中,我从http请求中提取数据。
在我的布局中,我想使用 Glide 库动态显示图像。
我得到了图像网址,但我找不到在我的布局中显示它们的方法。
在我的布局文件中,我有:
<LinearLayout
android:id="@+id/social_media_layout"
android:layout_width="match_parent"
android:orientation="horizontal"
android:layout_height="60dp"
android:gravity="center_vertical">
</LinearLayout>
不知何故,我想在我的线性布局中添加图像视图(动态(。
例如:如果我从请求中获得 2 个图像 URL,我的线性布局中需要两个图像视图。
注意:我想使用Glide库加载图像。
任何想法都会很奇怪。
谢谢。
为item_social_media.xml
创建一个新的XML文件
例如
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="60dp" >
<ImageView
android:id="@+id/social_media_icon"
/>
<!-- More customization as needed -->
</RelativeLayout>
你可以给它充气并添加到LinearLayout中。
final Context context = MainActivity.this; // TODO: Get a context
// Inflate and update the view
View socialMediaItem = LayoutInflater.from(context).inflate(R.layout.item_social_media);
ImageView icon = (ImageView) socialMediaItem.findViewById(R.id.social_media_icon);
// TODO: Glide ... into(icon);
// Add to the LinearLayout
linearLayout.addView(socialMediaItem);
您应该最好使用 ListView 或 RecycleView 。但是,如果您坚持将它们动态添加到LinearLayout中,那么:
LinearLayout layout = (LinearLayout)findViewById(R.id.social_media_layout);
// assuming that image_urls_list contains the images urls
for(int i=0;i<image_urls_list.size();i++)
{
ImageView image = new ImageView(this);
// set whatever width and height you want to give
image.setLayoutParams(new android.view.ViewGroup.LayoutParams(100,100));
// load image using Glide
Glide.with(context).load(image_urls_list.get(i)).into(image);
// Adds the view to the layout
layout.addView(image);
}
您可能希望将水平滚动视图标签作为父标签添加到 LinearLayout,以便可以水平滚动。