ViewPager中的Imageview和textView

时间:2014-01-04 14:35:57

标签: android android-viewpager

在我的Android应用程序中,我有一组图像..我使用ViewPager来显示图像和相应的文本..所有图像的大小都是300 * 300像素..我的问题是在xhdpi设备中,图像显示非常小..而在hdpi设备中它是相当好的。我尝试设置"android:adjustViewBounds="true"但没有用。

编辑:我的图片在drawable-nodpi文件夹中。

这是我使用的代码,

LayoutInflater inflater = (LayoutInflater) container.getContext()
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.custom_pager, null);

ImageView customepager_iv = (ImageView) layout.findViewById(R.id.custompager_iv);
customepager_iv.setImageBitmap(icon); //setting some icon

TextView custompager_tv = (TextView) layout.findViewById(R.id.custompager_tv);
custompager_tv.setText(categoryDB.get(position));

((ViewPager) container).addView(layout, 0);

,布局是我试图在Viewpager中设置这个,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/custompager_rl"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/custompager_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/custompager_iv"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:singleLine="true"
        android:text="Subject"
        android:textColor="#e4533e"
        android:textSize="30sp"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/custompager_iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/someImage" />

</RelativeLayout>

有关如何解决此问题的任何指示?

3 个答案:

答案 0 :(得分:0)

使用

检查运行时的屏幕密度(LDPI,HDPI,MDPI或XHDPI)
DisplayMetrics metrics = getResources().getDisplayMetrics();
int densityDpi = (int)(metrics.density * 160f);

然后在运行时相应地更改ImageView的高度和宽度,例如400 * 400,用于XHDPI

像这样更新您的布局

<ImageView
        android:id="@+id/custompager_iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:scaleType="fitXY"
        android:src="@drawable/someImage" />

答案 1 :(得分:0)

根据@ÁronNemmondommegavezetéknevem的评论,我已将所有图像移动到可绘制文件夹中,图像在所有设备中都能正确显示..

为了别人的利益在这里发帖..谢谢!

答案 2 :(得分:0)

为了别人的利益,我把它作为解决方案发布了:

如果您使用可绘制资源作为图像,则应将它们存储在res / drawable- * dpi子文件夹中,因为系统会根据屏幕密度对其进行缩放。存储它们的最佳位置是res / drawable-mdpi,因为在图像中1px将在屏幕上占用1dp。