2011-12-16 9 views
0

画像が画像ビューの範囲内にない理由を把握できません。代わりに、それは左に浮いており、隠されています。これは、グラフィカルインターフェイスでは表示されないためですか?画像が範囲外に表示される

EDIT:

私はより明確に私がいる問題を表示するには、元のコードを編集した画像(私は画像が赤枠で表示する)を追加しました:

enter image description here

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout 
    android:id="@+id/top_container" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1"  
    android:gravity="center" 
    > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="1" 
     > 
     <View 
      android:layout_height="fill_parent" 
      android:layout_width="0dp" 
      android:layout_weight="195" 
      android:background="#00FF00"/> 
     <ImageView 
      android:id="@+id/img" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:background="#ff0000" 
      android:src="@drawable/img" /> 

     <View 
      android:layout_height="fill_parent" 
      android:layout_width="0dp" 
      android:layout_weight="1" 
      android:background="#0000FF" 
     /> 
    </LinearLayout> 
</LinearLayout> 

答えて

0

私はそれを働かせています。 "block_container"の高さ属性はランダムな200dpに設定されています。必要なものに高さを変更したり、潜在的に "wrap_content"に設定することができます。私はエミュレータとデバイスでこれをテストしました。

また、3つのブロックがすべて均等に配置されることを前提としています。親 "block_container"のweight_sumが9であることに注目してください。子どもの体重がそれぞれ3である(3ブロック×3体重=合計9体)ので、子供は同じ幅です。

たとえば、体重を直接幅などに使用しようとしていたようです。 569の重み。ちょうど重さ!=幅を直接覚えています。

編集:私は質問を少し更新ビューの一部

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/top_container" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 

    <LinearLayout 
     android:id="@+id/block_container" 
     android:layout_width="fill_parent" 
     android:layout_height="200dp" 
     android:orientation="horizontal" 
     android:weightSum="9" 
     > 
     <View 
      android:id="@+id/left_block" 
      android:layout_height="fill_parent" 
      android:layout_width="0dp" 
      android:layout_weight="3" 
      android:background="#00FF00"/> 
     <ImageView 
      android:id="@+id/img" 
      android:layout_width="0dp" 
      android:layout_height="fill_parent" 
      android:layout_weight="3" 
      android:background="#ff0000" 
      android:src="@drawable/logo" /> 

     <View 
      android:id="@+id/right_block" 
      android:layout_height="fill_parent" 
      android:layout_width="0dp" 
      android:layout_weight="3" 
      android:background="#0000FF" 
     /> 
    </LinearLayout> 
</LinearLayout> 
0

なぜandroid:layout_heightを0dpに設定していますか? fill_parentのようなものに変更しない限り、表示することさえできません。

いずれにせよ、その理由はあなたのlayout_weightが親のためLinearLayoutです。あなたのImageViewには、より大きなlayout_weightを指定すると、表示されます。

<ImageView 
     android:id="@+id/my_img" 
     android:gravity="center" 
     android:layout_width="0dp" 
     android:layout_height="fill_parent" 
     android:layout_weight="279" 
     android:src="@drawable/my_img" /> 

これは私のために働いていますが、数学は正しくないかもしれません。

+0

から欠落しているid属性を追加しました。多分私は何かを理解していないでしょうか?私は体重を増やす必要があります。イメージは境界にあるべきではありませんか? – prostock

+0

試しましたか?問題を再現し、ImageViewの重量を増やして解決しました。 – styler1972

0

私はあなたが投稿何をして問題を開始するためにどこかわからない、さらにデバッグする前に、いくつかの簡単な所見:

  • あなたのレイアウトは、すべてのID(例:アンドロイド必要があります:IDを= "@ + ID/another_layout ")
  • あなたがあなたの最初の直線のレイアウトは、私はそれがすべて
  • 最後インナー線形でレンダリング驚い前回と合わせ、0 DPの高さを有する0dp
  • の第2のリニアレイアウトに幅を持っていますレイアウトは再び0dpの幅を持つ

達成しようとしていることはありますか?私には、理解しやすくするためにいくつかの要素を削除していない限り、たくさんのレイアウトがあるようです。あなたがしようとしていることの単純なイメージを投稿すれば、マークアップを改善するのに役立つでしょうか?

+0

さんが画像を追加して、あなたの善良なアイデアを提供するために、コードを編集しました。私は高さと幅を指定するためにウェイトを使用しようとしているので私は0dpを追加しました – prostock

+0

私はグラハムスミスに同意します。あなたがやろうとしていることを達成するためのより良い方法があるようです。 – styler1972

関連する問題