0

私はこのレイアウトを得ました:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/rel2"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:background="#ffffff" >

  <ImageView
    android:id="@+id/tree"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:src="@drawable/lemon_large"
    android:scaleType="centerCrop"
    />
  <ImageView 
      android:id="@+id/fruit"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:src="@drawable/lemonpiece"
      android:layout_alignLeft="@+id/tree"
      android:layout_alignTop="@+id/tree"
      android:layout_marginLeft="95dp"
      android:layout_marginTop="136dp"/>

ツリーはスケーリングされており、上部と下部は常にトリミングされています。これは、画面の高さが異なるためです。私がやりたいのは、画像ビューを固定することです。画像ビューは、どれだけスケーリングされていても、画像ビューに対して常に同じ場所にあります。

私はさまざまなscaleType値を試しましたが、常に実際に画像をスケーリングし、すべての画面で画像は「ツリー」に対して相対的な場所にあります。

私が試したもう1つの可能性は、画面の上部に揃えることです(alignParentTop、alignParentLeft、scaleType = "matrix")が、一部の画面が非常に短く、画像が画面に正しく収まらないため、これは機能しません. つまり、スケーラビリティを維持し、上部の画像を固定する必要があります。

何か案は?

4

1 に答える 1

0

ディメンション用のリソース XML ファイルを作成し、次の内容を記述します。

image_dimens.xml:

<dimen name="myValueX">95dp</dimen>
<dimen name="myValueY">136dp</dimen>

ImageViews を表示するアクティビティで:

    int myValueX = (int) getResources().getDimension(R.dimen.myValueX);
    int myValueX = (int) getResources().getDimension(R.dimen.myValueX);

    ImageView ivFruit = (ImageView) findViewById(R.id.fruit);
    ImageView ivTree = (ImageView) findViewById(R.id.tree);
    ivFruit.setX(ivTree.getX() + myValueX);
    ivFruit.setY(ivTree.getY() + myValueY);

これがお役に立てば幸いです。ハッピー コーディング!

于 2013-09-04T18:17:09.190 に答える