╔════════════════════════════════════════════════════════╗
║ Linear Layout (Center) ║
║ ╔══════════════════════════════════════════════╗ ║
║ ║ ImageView ╔══════════════╗ ║ ║
║ ║ ║ ║ (Center) ║ ║
║ ║ ║ Actual image ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ║ (Center) ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ╚══════════════╝ ║ ║
║ ╚══════════════════════════════════════════════╝ ║
║ ║
╚════════════════════════════════════════════════════════╝
そして、私はこれをやりたい:
╔════════════════════════════════════════════════════════╗
║ Linear Layout (Center) ║
║ ╔══════════════════════════════════════════════╗ ║
║ ║ ImageView ║ ║ ║ ║
║ ║ ║ ║ (Center) ║ ║
║ ║ ║ Actual image ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ║ (Top) ║ ║ ║
║ ║ ║ ║ ║ ║
║ ║ ╚══════════════╝ ║ ║
║ ╚══════════════════════════════════════════════╝ ║
║ ║
╚════════════════════════════════════════════════════════╝
注意してください:imageviewには線形レイアウトの重心があります助けて
編集:これは私のXMLです
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical" Android:layout_width="fill_parent"
Android:layout_height="fill_parent" Android:background="@color/all_white">
<LinearLayout Android:id="@+id/title_bar" style="@style/TitleBar">
<TextView Android:layout_width="wrap_content"
Android:id="@+id/tv_printweb"
Android:singleLine="true"
Android:ellipsize="end"
style="@style/ScreenTitleText" />
</LinearLayout>
<RelativeLayout Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:layout_below="@+id/tv_web_filename"
Android:layout_above="@+id/tv_web_page_num"
Android:layout_weight="1"
Android:background="@color/background">
<LinearLayout Android:id="@+id/ln_web_pre"
Android:layout_width="30dp"
Android:layout_height="fill_parent"
Android:layout_alignParentLeft="true"
Android:gravity="center">
<Button Android:id="@+id/btn_web_pre"
Android:layout_width="40dp"
Android:layout_height="120dp"
Android:background="@drawable/bt_left"
/>
</LinearLayout>
<LinearLayout Android:id="@+id/ln_web_zoomview"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@color/all_white"
Android:orientation="vertical"
Android:gravity="center"
Android:layout_centerInParent="true">
<ImageView Android:id="@+id/web_zoomview"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="@color/all_white"
Android:layout_gravity="top"
/>
</LinearLayout>
<LinearLayout Android:id="@+id/llCircle"
Android:layout_height="fill_parent"
Android:layout_width="fill_parent"
Android:layout_marginRight="40dp"
Android:layout_marginLeft="40dp"
Android:layout_marginBottom="25dp"
Android:layout_marginTop="25dp">
</LinearLayout>
<LinearLayout Android:id="@+id/ln_web_next"
Android:layout_width="30dp"
Android:layout_height="fill_parent"
Android:layout_alignParentRight="true"
Android:gravity="center">
<Button Android:id="@+id/btn_web_next"
Android:layout_width="40dp"
Android:layout_height="120dp"
Android:background="@drawable/bt_right_1"
/>
</LinearLayout>
<RelativeLayout Android:id="@+id/pagebar_web_top"
Android:layout_width="fill_parent"
Android:layout_height="30dp"
Android:layout_alignParentTop="true"
Android:gravity="center_vertical"
Android:paddingLeft="10dip"
Android:paddingRight="10dip">
<TextView Android:id="@+id/tv_web_page_size"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:gravity="center"
Android:text="Paper Size"
Android:textColor="@color/all_black"
Android:textStyle="bold"
Android:background="@drawable/paper_border" />
</RelativeLayout>
<RelativeLayout Android:id="@+id/web_pagebar"
Android:layout_width="fill_parent"
Android:layout_height="50dp"
Android:layout_alignParentBottom="true"
Android:gravity="left"
Android:paddingLeft="10dip"
Android:paddingRight="10dip">
<TextView Android:id="@+id/tv_page_num"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerVertical="true"
Android:gravity="center"
Android:text="1/1"
Android:textColor="@color/all_black"
Android:textStyle="bold"
Android:background="@drawable/paper_border" />
<Button Android:id="@+id/btn_web_orientation"
Android:layout_width="50dp"
Android:layout_height="50dp"
Android:layout_alignParentRight="true"
Android:background="@drawable/rotate_l" />
</RelativeLayout>
</RelativeLayout>
<LinearLayout Android:gravity="right|center_horizontal"
Android:id="@+id/toolbar"
style="@style/FunctionBar">
<Button Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/btn_web_print"
style="@style/FunctionButton"
Android:text="@string/str_print" />
</LinearLayout>
</LinearLayout>
XMLでscaleType
をfitStart
に設定します。
<ImageView
Android:id="@+id/ivMap"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:scaleType="fitStart" >
</ImageView>
正しい答えであると言われているTerelの答えを確認してください。
レイアウト内の他の要素に応じて、ソリューションはFrameLayout
の代わりに別のレイアウト(つまり、ImageView
)を使用し、ImageView
実際の画像の代わりに、そのAndroid:layout_gravity="top"
。
_ImageView.ScaleType.MATRIX
_を使用し、ImageView.setImageMatrix()
を使用して画像マトリックスを設定できます。 Matrix
は、Matrix.setRectToRect()
メソッドを使用して取得できます。
属性を使用してみましたかAndroid:gravity = "top" ImageViewでAndroid:layout_gravityを使用していることがわかります。他の属性を使用してみてください。私の知る限り、「Android:layout_gravity」属性は親内の要素の重力を設定するために使用され、「Android:gravity」属性は要素のコンテンツの重力を設定します。 (私が間違っていれば誰かが私を修正します!= P hehe!)
RelativeLayout
を使用する方が簡単ではないでしょうか? Android:layout_alignParentTop="true"
およびAndroid:layout_centerHorizontal="true"
希望する効果を達成できます。