2012-04-25 20 views
1

直接の子は、私が使用しようとしたコードがあるホストすることができます1つの直接の子供ScrollViewは一つだけ、私はscrollviewに画像を追加したい例外

私はどのように私のscrollviewに画像を追加する必要がありますか?

追加コード: のxml:

ます。public void addImage(文字列のパス){

  LinearLayout sv = (LinearLayout)findViewById(R.id.filesScrollerLayout); 
     ImageView iv = new ImageView(this); 
     iv.setImageDrawable(new BitmapDrawable(path)); 
     iv.setScaleType(ScaleType.CENTER_INSIDE); 
     sv.addView(sv); 

} 

ありがとう:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical"> 

    <ScrollView 
     android:id="@+id/scrollView1" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:background="#FF0000" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

     </LinearLayout> 
    </ScrollView> 

    <ScrollView 
     android:id="@+id/scrollView2" 
     android:layout_width="200dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:layout_toRightOf="@+id/scrollView1" 
     android:background="#FFFF00" > 

     <LinearLayout 
      android:id="@+id/filesScrollerLayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 
     </LinearLayout> 
    </ScrollView> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="250dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:background="#FFFFFF" 
     android:layout_toRightOf="@+id/scrollView2" /> 

</RelativeLayout> 

そして、最後アクティビティのonCreateこのメソッドを呼び出すに

+0

'内の他のすべてのビューをホストする単一の子供..

<ScrollView> <LinearLayout android:id="@+id/child"> <ImageView/> ... ... </LinearLayout> </ScrollView> 

を必要としますsv.addView(sv) 'は私に間違って見えます。その声明の理由はありますか? – Rajesh

+0

私はただscrollViewに画像を追加したいのですが、これ以外の解決策はありますか? – Streetboy

+0

'sv.addView(iv)'に変更してください。 – Rajesh

答えて

8

これは...それはScrollView以上1子を保持することはできませんので、そう伝え役立つかもしれない...それはあなたのケース

LinearLayout child = (LinearLayout)findViewById(R.id.child); 
     ImageView iv = new ImageView(this); 
     iv.setImageDrawable(new BitmapDrawable("PATH")); 
     iv.setScaleType(ScaleType.CENTER_INSIDE); 
     child.addView(sv); 
+0

今私はこれを得る: java.lang.IllegalStateException:指定された子は、すでに親を持っています。子の親で最初にremoveView()を呼び出す必要があります。 – Streetboy

+0

@Streetboy ..その後、あなたのコードとXMLをすべて投稿してください。 – ngesh

関連する問題