2016-08-26 3 views
0

Я использую универсальный загрузчик изображений для загрузки некоторого изображения (большой высоты) в listview.
это ListView (изготовленный на заказ для увеличения/уменьшения) в деятельности:Показать комикс в Imageview

<noname.test1.CustomListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:id="@+id/listviewImg" /> 

это list_img.xml для ListView:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/imageview1"> 
</ImageView> 

это изображение я хочу, чтобы загрузить (размер 400px X 5312px): link

это результат:
enter image description here




Я хочу изображения, когда шоу в полноэкранном режиме или больше.
Как это исправить?

+0

, что вы хотите быть? – sumandas

+0

@sumandas: я хочу, чтобы изображение отображалось полностью на экране или больше – 1234abcd

+0

добавить 'scaleType =" centerCrop "', возможно, это то, что вы хотите. –

ответ

0

создать этот класс и использовать вместо ImageView

/** 
* Created by farazkhonsari on 1/26/16. 
*/ 

public class ScaledImageView extends ImageView { 

public ScaledImageView(Context context) { 
    super(context); 
} 

public ScaledImageView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public ScaledImageView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    try { 
     Drawable drawable = getDrawable(); 

     if (drawable == null) { 
      setMeasuredDimension(0, 0); 
     } else { 

      int measuredWidth = MeasureSpec.getSize(widthMeasureSpec); 
      int measuredHeight = MeasureSpec.getSize(heightMeasureSpec); 
       int width = measuredWidth; 
       int height = width * drawable.getIntrinsicHeight()/drawable.getIntrinsicWidth(); 
       setMeasuredDimension(width, height); 

     } 
    } catch (Exception e) { 
     super.onMeasure(widthMeasureSpec, heightMeasureSpec); 
    } 
} 

и использовать этот класс в макете, как это:

<ir.farazGroup.YeJoke.tools.ScaledImageView 
      android:id="@+id/image" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:src="@drawable/c" 
      android:scaleType="fitCenter" 
/> 
+0

большое спасибо. – 1234abcd

0

вы должны изменить scaleType из imageViwe и установить adjustViewBound верно:

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:id="@+id/imageview1" 
android:scaleType="centerCrop" 
android:adjustViewBounds="true"> 
</ImageView> 

вы можете попробовать другой вариант для scaleType и посмотреть, что один хорошо для вас!

и вы можете прочитать о scaleType здесь: scaleTypes

+0

он просто показывает часть изображения, а не полное изображение. – 1234abcd

0

Попробуйте это решение: [Установите это внутри onCreate или onCreateView после раздувания списка]

imageView = (ImageView) findViewById(R.id. imageview1); 

Display display = getWindowManager().getDefaultDisplay(); 
DisplayMetrics metrics = new DisplayMetrics(); 
display.getMetrics(metrics); 
float screenWidth = metrics.widthPixels; 
imageView.getLayoutParams().width = (int) screenWidth; // Takes the whole screen width 
0

попробовать это я буду надеяться, я помогу вам

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/imageView" 
    android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:src="@drawable/locked_image" 
    android:scaleType="fitXY" 
/> 
Смежные вопросы