1

我想问一下scrollView 中imageView 的布局问题。但是,显示的图像非常非常小。即使是一张1024 * 1024 px图片也无法完全占据普通手机的整个屏幕宽度。

如何修改它以便对于任何图像大小:

1)宽度可以自动放大或缩小以固定屏幕宽度;

2)高度将相应地放大或缩小以保持高度:宽度比,并且如果大于可用空间则可以滚动。

我尝试了很多不同的组合,如http://juliaailse.iteye.com/blog/1409317所示,但仍然失败。

代码如下:

<TableLayout android:id="@+id/tableLayout" 
   android:layout_width="match_parent" 
   android:layout_height="match_parent" 
   android:stretchColumns="*" 
   android:background="@color/background_color"
   android:orientation="vertical"  
   xmlns:android="http://schemas.android.com/apk/res/android">

    <TableRow
        android:id="@+id/tableRow0"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <Button
          android:id="@+id/RefreshButton"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_vertical"
          android:layout_span="2"
          android:paddingBottom="2dp"
          android:paddingTop="2dp"
          android:text="Refresh"         
          android:textSize="10sp" />    

       <TextView
           android:id="@+id/titleTextView"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:layout_gravity="center_horizontal"
           android:layout_marginBottom="2dp"
           android:layout_span="4"
           android:gravity="center_horizontal"
           android:text="@string/quiz_title"
           android:textColor="@color/text_color"
           android:textSize="@dimen/title_size" >
       </TextView>

       <Button
          android:id="@+id/BackButton"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_vertical"
          android:layout_span="2"
          android:paddingBottom="2dp"
          android:paddingTop="2dp"
          android:text="Back"
          android:textSize="10sp" />    
   </TableRow>

    <TableRow
        android:id="@+id/tableRow2"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

       <TextView android:id="@+id/questionNumberTextView"
          android:layout_width="match_parent" 
          android:layout_height="wrap_content"
          android:layout_marginBottom="2dp" 
          android:layout_marginTop="2dp"
          android:layout_span="8"
          android:textColor="@color/text_color" 
          android:textSize="@dimen/text_size" 
          android:layout_gravity="center" 
          android:gravity="center">        
       </TextView>      
   </TableRow>

   <TableRow
       android:id="@+id/tableRow3"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_weight="1"
       android:background="@android:color/transparent" >

      <ScrollView android:id="@+id/SlotScrollView" 
         android:layout_width="match_parent"  
         android:layout_span="8">

           <ImageView
               android:id="@+id/flagImageView"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:layout_gravity="center"
               android:gravity="center_horizontal" >      
           </ImageView>
     </ScrollView>   
   </TableRow>   

    <TableRow
        android:id="@+id/tableRow4"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="5dp" >

       <TextView
           android:id="@+id/guessCountryTextView"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_gravity="center_horizontal"
           android:layout_marginBottom="2dp"
           android:layout_marginTop="2dp"
           android:layout_span="8"
           android:gravity="center_horizontal"
           android:text="@string/choose_answer"
           android:textColor="@color/text_color"
           android:textSize="@dimen/text_size" >    
        </TextView>                       
   </TableRow>    

   <TableRow
       android:id="@+id/tableRow4"
       android:layout_width="match_parent"
       android:layout_height="match_parent"     
       android:background="@android:color/transparent" >  

       <TableLayout android:id="@+id/buttonTableLayout" 
          android:layout_width="match_parent"
          android:layout_height="wrap_content" 
          android:layout_span="8"
          android:layout_weight="1" 
          android:stretchColumns="0,1,2,3">
          <TableRow android:id="@+id/tableRow0" 
             android:layout_width="match_parent" 
             android:layout_height="wrap_content" 
             android:orientation="horizontal"></TableRow>
          <TableRow android:id="@+id/tableRow1"
             android:layout_width="match_parent" 
             android:layout_height="wrap_content"
             android:orientation="horizontal"></TableRow>
          <TableRow android:id="@+id/tableRow2"
             android:layout_width="match_parent" 
             android:layout_height="wrap_content"
             android:orientation="horizontal"></TableRow>
       </TableLayout>
    </TableRow>

   <TableRow
       android:id="@+id/tableRow5"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:background="@android:color/transparent"
       android:gravity="center_horizontal" >

       <TextView android:id="@+id/answerTextView"
          android:layout_width="match_parent" 
          android:layout_height="wrap_content"
          android:layout_span="8"
          android:textSize="@dimen/answer_size" 
          android:layout_gravity="center" 
          android:textStyle="bold" 
          android:gravity="center">        
       </TextView>
    </TableRow>         

</TableLayout>   
4

1 回答 1

1

尝试为 ImageView 添加以下 2 行:

android:scaleType="fitCenter"
android:adjustViewBounds="true"

你应该得到这样的结果:

<ImageView
   android:id="@+id/flagImageView"
   android:scaleType="fitCenter"
   android:adjustViewBounds="true"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:layout_gravity="center"
   android:gravity="center_horizontal" >      
</ImageView>
于 2012-11-12T14:53:40.843 回答