我正在开发像Image Gallery这样的应用程序,其中包含从网络上获取的图像。所有图片都具有相同的宽度200px
和高度280-300px
。我将RecyclerView
与Adapter.ViewHolder
和GridLayoutManager
一起使用,spans = 2.使用Picasso
库加载图片。
item_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tile_picture"
android:layout_width="match_parent"
android:layout_height="260dp"
android:layout_margin="1dp"
android:scaleType="centerCrop"/>
在我的设备5" 720x1280
上,它看起来不错。
Screenshot
但是当我在其他设备上启动应用程序时,它看起来并不那么好......
在5.5" 1080x1920
上,图像之间有额外的边距。
在旧3.7" 480x800
上,只有一个跨度,宽度位多于半屏尺寸。
我建议,因为android:layout_height="260dp"
硬编码。
那么,我怎样才能在不同的设备上看到相同的效果呢?
答案 0 :(得分:0)
我建议您实现自定义视图,并在onMeasure
获取屏幕宽度,然后传递一半的宽度:
setMeasuredDimension(width/2, height);
这样可以保证在任何设备上,您都可以在屏幕的一半显示图像。