3

行を表示する ListView があります

これはxmlです:

 ...
  <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="5dp"
        android:layout_weight="1"
        android:background="@color/white"
        android:orientation="vertical" >

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".30">

            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:background="@drawable/face"
                android:scaleType="centerCrop" />
        </FrameLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight=".70"
            android:background="@color/white"
            android:padding="4dp" >

            // Other views...

        </LinearLayout>
    </LinearLayout>
    …

この結果を取得します。

ここに画像の説明を入力

これが元の画像です

ここに画像の説明を入力

次のように、スケーリングなしの画像が必要です。

ここに画像の説明を入力

私はアンドロイドを使用しています: ScaleType = "centerCrop" 私はアンドロイドでテストしました: AdjustViewBounds = "true" および他の多くのパラメーターを使用していますが、成功することはありませんでした

アイデア?

前もって感謝します

4

4 に答える 4

3

android:srcの代わりに画像を設定しますandroid:background

<ImageView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:src="@drawable/face"
                android:scaleType="centerCrop" />

すべてのビューで背景画像を取得できます

srcto anImageViewには追加機能があります。

  • さまざまなスケーリング タイプ
  • adjustViewBounds画像の寸法に合わせて境界を設定するため
  • アルファ設定などのいくつかの変換

さらに、 docsで見つけることができます。

于 2013-05-09T10:28:53.620 に答える
0

ドローアブルを設定するandroid:src代わりに使用できます。android:background何かのようなもの:

<ImageView  android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:src="@drawable/face"
            android:scaleType="centerCrop" />

また、フォトショップなどの画像編集ソフトウェアを使用して画像をトリミングし、代わりにその画像を使用してみませんか? システム リソースの過度の使用を可能な限り回避するために、画像の動的なスケーリングと操作は避ける必要があります。

于 2013-05-09T10:31:21.397 に答える
0

あなたの問題は、LinearLayout と FrameLayout にウェイトが挿入されていることだと思います。ウェイトなしで RelativeLayout を使用してください。システムは ImageView を測定できず、画像と比較できないため、画像をトリミングできません。要するに、システムは「これは画像とImageViewが等しい」と考えています。私はそうしました:

 <RelativeLayout        
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:padding="5dp">

      <ImageView 
          android:id="@+id/image"
          android:layout_height="50dp"
          android:layout_width="match_parent"
          android:src="@drawable/photo"
          android:scaleType="centerCrop"
          android:contentDescription="@string/app_name"
          android:layout_alignParentTop="true"
          />
      <TextView android:layout_height="150dp"
          android:layout_width="match_parent"
          android:text="@string/text"
          android:layout_below="@id/image"
          android:maxLength="350"
          android:layout_marginTop="5dp"/>

</RelativeLayout>
于 2013-05-09T11:15:43.173 に答える
0

スケール タイプandroid:background="@drawable/face"へ の変更 は、android:src="@drawable/face"android:src

于 2013-05-09T10:28:47.157 に答える