在我的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>
有关如何解决此问题的任何指示?
答案 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。