レイアウト:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@android:color/transparent"
android:id="@+id/globeViewStreamInfoPanel"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/streamIndicator"
android:src="@drawable/nv_tidestreamindicator"
android:scaleType="matrix"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_margin="10dp"
android:maxHeight="40dp"
android:maxWidth="40dp"
android:layout_width="40dp"
android:layout_height="40dp"/>
コード(streamIndicator
はImageView
):
streamIndicatorMatrix.reset();
streamIndicatorMatrix.setScale(size,size);
// rotate indicator in the direction of the flow
streamIndicatorMatrix.setRotate((float)(stream.currentStream.direction));
streamIndicator.setImageMatrix(streamIndicatorMatrix);
回転、拡大縮小、またはその両方を行うと、ImageViewがレイアウト内を移動します。
奇妙なことは、私が後でラインを壊してsetImagematrix
検査すると、、、、そしてstreamIndicator
すべてmTop
が正しく見えることです。 そして私の回転角は常に合法で賢明な値です。mLeft
mWidth
mHeight
size
私はこれが愚かなことだと知っています、私は何を逃しましたか?
ありがとう!
[編集]
これが写真です。赤い矢印は、誤ったImageViewを指すために私が追加したものです。