2013-11-28 2 views
0

Я использую Android-Query для загрузки изображений в веб-просмотр, поэтому я могу использовать функцию масштабирования, которая поставляется с этим конкретным видом.Android Query Zoomable Web Image - подходит для просмотра

Теперь изображения, которые я загружаю, выше их ширины, поэтому в моем макете обрезаются (не видно нижней части изображения).

В любом случае я могу изменить свой код, чтобы заставить загруженное изображение масштабироваться в соответствии с представлением? В документации сказано ...

В дополнение к ImageView, WebView может быть использован для отображения изображения вместе с Android сборки в поддержку масштабирования для WebView. Изображение будет сцентрировано и заполняет ширину или высоту веб-представления в зависимости от его ориентации .

Так что, я думаю, мне может быть не повезло? Вот соответствующая строка кода, которая загружает изображение ...

aq.id(R.id.webview).progress(R.id.progressbar).webImage(imageUrl); 

А вот layouyt ..

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <WebView 
     android:id="@+id/webview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" /> 

    <ProgressBar 
     android:id="@+id/progressbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" /> 
    </RelativeLayout> 

ответ

0

Хорошо. получил решение, которое работает для моего конкретного сценария, поэтому ...

Поскольку я знал пропорцию изображения, загружаемого в веб-представление, я решил, что могу просто изменить размер веб-представления до правильного соотношения, чтобы убедиться, что он правильно установил доступное пространство. Я обновил XML для этого ...

<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <LinearLayout 
     android:id="@+id/wrapper" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <WebView 
      android:id="@+id/webview" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 

    </LinearLayout> 

    <ProgressBar 
     android:id="@+id/progressbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" /> 

</RelativeLayout> 

... Затем добавляют это к моей деятельности (идея взята из here) ...

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 

    // need to set correct proportions of webview to match image 
    super.onWindowFocusChanged(hasFocus); 
    WebView mWrapper = (WebView) findViewById(R.id.webview); 
    int w = mWrapper.getWidth(); 
    int h = mWrapper.getHeight(); 
    while (w * 1.28 > h) { 
     w--; 
    } 
    LayoutParams params = new LinearLayout.LayoutParams((int) w, LinearLayout.LayoutParams.FILL_PARENT); 
    mWrapper.setLayoutParams(params); 
} 

... где "1,28" значение это соотношение между шириной и высотой моего изображения (высота по ширине).

Таким образом, изображение добавляется к веб-просмотру, вид выкладывается, тогда этот код вбивает и сжимает ширину до тех пор, пока он не станет достаточно малым, чтобы соответствовать доступной высоте с использованием соответствующего соотношения. Новый LinearLayout центрирует веб-просмотр, чтобы держать вещи в порядке.

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

  • Нет связанных вопросов^_^