すべてのアクティビティ/ビューにヘッダーグラフィックを含める必要があります。ヘッダーのあるファイルはheader.xmlと呼ばれます。
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#0000FF"
Android:padding="0dip">
<ImageView xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:src="@drawable/header"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_margin="0dip"
Android:layout_marginTop="0dip"
Android:layout_marginBottom="0dip"
Android:padding="0dip"
Android:paddingTop="0dip"
Android:paddingBottom="0dip"
Android:layout_gravity="fill"
Android:background="#00FF00"
/>
</FrameLayout>
Android:background="#00FF00"
(緑色)に注意してください。これは単なる視覚化の目的です。
次のように、ビューにそれらを含めます。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical"
style="@style/white_background">
<include layout="@layout/header" />
(...)
したがって、実際に試してみると、結果は左の画像のように見えます(右)。
(1)これ-オレンジ-部分は問題のimage/ImageViewです
(2)愛されていない緑のボーダー。注:通常、緑色の領域は透明になります-background
を設定したため、緑色になります。
上部の画像の周りの緑の境界線に注意してください。 ImageViewの一部であり、なぜ存在するのか、どうすれば削除できるのかわかりません。すべてのパディングとマージンを0に設定します(ただし、それらを省略しても結果は同じです)。画像は480x64pxのjpeg *であり、res/drawableに配置します(drawable-Xdpi
のいずれにもありません)。
(* jpeg。古いpngガンマの問題に出会ったようです。最初は、緑の境界線を画像と同じオレンジにし、色が一致しないようにして問題を回避しました。)
Htc desire/2.2/Build 2.33.163.1およびエミュレータで試してみました。また、#Android-devで問題を誰かに説明しました。彼女は問題を再現できましたが、説明もありませんでした。ビルドターゲットは1.6です。
@tehgooseを更新します。このコードは、まったく同じ上+下のパディング結果を生成します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:orientation="vertical"
style="@style/white_background">
<!-- <include layout="@layout/header" /> -->
<ImageView
Android:src="@drawable/header"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:background="#00FF00"
Android:layout_weight="0"
/>
<LinearLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical"
Android:padding="8dip"
Android:layout_weight="1">
(... rest of the elements)
</LinearLayout>
</LinearLayout>
最後に!
<ImageView
(...)
Android:adjustViewBounds="true" />
adjustViewbounds属性 はトリックを行いました:
ImageViewの境界を調整してそのドロアブルのアスペクト比を保持する場合は、これをtrueに設定します。
私はつまずいた ここで 。ご協力いただきありがとうございます!
Android:scaleType="fitXY"
わたしにはできる。
画像のアスペクト比に関係しています。デフォルトでは、システムは画像ソースの元のアスペクト比を保持します。ほとんどの場合、レイアウトまたはレイアウトで指定された寸法と正確には一致しません。したがって、
Android:scaleType
を使用して、画像に合わせます。たとえば、Android:scaleType="fitXY"
を指定できますAndroidは元のアスペクト比を取得しようとするため、これらの余分なパディングは自動生成されます。以下を試してください
scaletype = "fitCenter"
Android:adjustViewBounds="true"
Android:layout_height="wrap_content"
imageview xmlでこのAndroid:scaleType = "fitXY"を使用します
Android:layout_height="wrap_content"
「fill_parent」に変更する必要があります
また、画像を拡大縮小する必要があるかもしれませんので、それが入っているフレームレイアウトを埋めるのに適切な比率になります。
フレームレイアウトが必要な理由がまったくわかりません。とにかく、あなたの画像はただ画面いっぱいになります。
編集:はい、申し訳ありませんが、xmlはimageviewの高さです。
specific height to imageView say 50dp or 40dp
とadjust image to make green border
を消すことができます。
卵:Android:layout_height="40dp"