2016-12-18 1 views
0

Я разрабатываю приложение, как Галерея изображений с изображениями из сети. Все изображения имеют одинаковую ширину 200px и высоту 280-300px. Я использую RecyclerView с Adapter.ViewHolder и GridLayoutManager с количеством пролетов = 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" hardcoded. Итак, как я могу получить одинаковый вид на разных устройствах?

ответ

0

Я могу предложить вам реализовать собственный взгляд, и в onMeasure получить ширину экрана, а затем передать половину ширины:

setMeasuredDimension(width/2, height);

Это будет гарантировать, что на любом устройстве, вы будете иметь изображение на половине экрана.

+1

Спасибо за идею. Вместо этого я просто попробовал '@Override public TopViewHolder onCreateViewHolder (родительский элемент ViewGroup, int viewType) { View view = LayoutInflater.from (mContext) .inflate (R.layout.main_tile_item, parent, false); int width = (parent.getMeasuredWidth()/2) - 4; int height = (int) (ширина * 1,5); view.setMinimumHeight (высота); вернуть новый TopViewHolder (просмотреть); } 'И кажется, что это работает! –

Смежные вопросы