0

我有一个图像列表,我需要在页面上一个接一个地显示,所有这些都包含一些文本。我在文件的 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。

prtsc1.png

在此处输入图像描述

我尝试了一切,但我不确定我做错了什么。

4

2 回答 2

0

我建议你尝试相对布局而不是 LinearLayout。LinearLayout 有自己的大脑,否则这很好,但有时它会搞砸事情。

您应该更改图像的参数以在文本下方对齐

对于第二个,如果您使用的是线性布局,则应使宽度 match_parent 和填充。

于 2014-03-15T05:09:55.880 回答
0

希望这可以帮助...让您的 imageView 获得中心对齐...

img.setScaleType(ImageView.ScaleType.CENTER_CROP);  

任何问题仍然存在,请告诉我...

于 2013-09-28T06:45:15.457 回答