我有一个图像列表,我需要在页面上一个接一个地显示,所有这些都包含一些文本。我在文件的 xml 中有 LinearLayout,我在其中添加了与该文本相关的部分(一些 TextViews)。因为我需要调用服务来获取图像 url,所以我在代码中将图像添加到该 LinearLayout。我使用此代码使用其 url 获取图像并将其添加到布局中(在 AsyncTask 实现的 onPostExecute 部分中)。
/**
* Download image using image url and show it in ImageView
*/
private class DownloadImageTask extends AsyncTask<Void, Void, Bitmap> {
public DownloadImageTask() {
super();
}
protected Bitmap doInBackground(Void... arg0) {
String urlDisplay = mDocumentUrls.get(mDocumentIdx);
mDocumentIdx = mDocumentIdx + 1;
Bitmap bmp = null;
try {
InputStream in = new java.net.URL(urlDisplay).openStream();
bmp = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return bmp;
}
protected void onPostExecute(Bitmap result) {
// We add a new ImageView to the LinearLayout of the page and set it
// source to the downloaded image
ImageView newImageView = new ImageView(getActivity());
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(convertDpToPx(20), convertDpToPx(5), convertDpToPx(20), 0);
newImageView.setImageBitmap(result);
mDocumentDetailsLayout.addView(newImageView, params);
//Next image
if(mDocumentIdx < mDocumentUrls.size())
new DownloadImageTask().execute();
}
}
这是页面的xml(与LinearLayout相关的部分)
<ScrollView
android:id="@+id/details_form"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/splashScreenGray
android:visibility="gone" >
<LinearLayout
android:id="@+id/details_form_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/splashScreenGray"
android:clickable="false"
android:orientation="vertical" ...
图片显示在页面上,但我有两个问题:1.我无法将它们水平居中(prtsc1.png)2.当我的手机处于纵向模式时,我有这个边距(第一张图片的上边距和之间的边距图像)当我的手机处于纵向模式时我没有(我不需要它们) - 比较 prtsc1.png 和 prtsc2.png。
我尝试了一切,但我不确定我做错了什么。