2017-01-03 129 views
0

我剛開始在android上工作一天前,我正在處理滾動。我已經做了一個,但我現在想動態地做同樣的事情。動態添加圖像視圖到水平滾動(通過代碼)

這是我的activity_main.xml中

<HorizontalScrollView 
    android:id="@+id/horizontalScrollView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:scrollbars="horizontal"> 

    <LinearLayout 
     android:id= "@+id/linearlayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:onClick="onTouch"> 


    </LinearLayout> 

</HorizontalScrollView> 




<LinearLayout 
    android:id="@+id/bottomlinear" 
    android:layout_width="match_parent" 
    android:layout_height="400px" 
    android:gravity="center" 
    android:background="#00ffff" 
    android:orientation="vertical" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginBottom="46dp">> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/drop" 
     android:textSize="30sp" 
     android:text="Drop Zone" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Total" 
     android:textSize="20sp" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Success" 
     android:textSize="20sp" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/Fail" 
     android:textSize="20sp" /> 

</LinearLayout> 

代碼基本上我想從抽拉添加10個圖像到水平滾動作爲動態圖像的景色。任何幫助或想法都非常感謝。

+0

嘗試此操作,將圖像拉伸至整個屏幕 'LinearLayout sv =(LinearLayout)findViewById(R.id.linearlayout1);對於(int i = 1; i <= 20; i ++){ String uri =「drawable/a」+ i; // int imageResource = R.drawable.image1; int imageResource = getResources()。getIdentifier(uri,null,getPackageName()); ImageView iv = new ImageView(this); iv。setBackgroundResource(imageResource); (iv); sd.addView(iv); } }' – JBJ

回答

0

我解決了這個問題。我會發布解決方案,希望它能幫助其他有類似問題的人。我原來做3個水平滾動視圖和XML爲其中之一就是這個樣子

<HorizontalScrollView 
    android:id="@+id/HorizontalScrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="100dp" 
    android:layout_marginBottom="1dp" 
    android:background="#FFF" 
    android:scrollbars="none"> 

    <LinearLayout 
     android:id="@+id/imgLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:orientation="horizontal"> 

    </LinearLayout> 


</HorizontalScrollView> 

的代碼,我寫了創建水平滾動視圖的線性佈局內的圖片瀏覽:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    for (int j=1; j<=10; j++) 
    { 
     b1=j; 
     create_img1("drawable/a"+j, b1); 
    } 


} 

void create_img1(String ss, int ID) 
{ 
    LinearLayout linearLayout = (LinearLayout) findViewById(R.id.imgLayout1); 
    LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(200, 200); 
    parms.gravity = Gravity.CENTER; 
    parms.setMargins(20, 20, 20, 20); 
    final ImageView imageView = new ImageView(this); 
    imageView.setLayoutParams(parms); 

    int id = getResources().getIdentifier(ss, "id", getPackageName()); 
    imageView.setImageResource(id); 
    linearLayout.addView(imageView); 
    imageView.setId(ID); 
} 

我做了一個對於具有拖放功能的多個滾動視圖,但是我將其濾除了,如果您想要在滾動視圖內動態創建圖像視圖,這就是您要查找的內容。希望這可以幫助有類似問題的其他人。

0

我認爲你正在嘗試做這樣的事情:

mHScrollContentView = (ViewGroup) findViewbyId(R.id.linearlayout1); 

ImageView iv1 = new ImageView(this); 
iv.setImageResource(R.drawable.image_1); 

ImageView iv2 = new ImageView(this); 
iv.setImageResource(R.drawable.image_2); 

ImageView iv3 = new ImageView(this); 
iv.setImageResource(R.drawable.image_3); 

ImageView iv4 = new ImageView(this); 
iv.setImageResource(R.drawable.image_4); 

mHScrollContentView.addView(iv1); 
mHScrollContentView.addView(iv2); 
mHScrollContentView.addView(iv3); 
mHScrollContentView.addView(iv4); 
3

你可以做這樣的。

  1. 創建一個包含imageView的xml佈局。

image_item.xml

<ImageView 

      xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:app="http://schemas.android.com/apk/res-auto" 
      android:layout_width="200dp" 
      android:layout_height="200dp" 
      android:visibility="visible" 
      android:adjustViewBounds="true" 
     /> 
  • 現在找到其中要成Java文件,這樣的容器。

    LinearLayout containerLayout = (LinearLayout)findViewById(R.id.linearlayout1); 
    
  • 現在只需運行一個for循環直到10並在運行時添加視圖。

     for(int a = 0 ; a < 10 ; a++) 
        { 
         LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
         View inflatedView = inflater.inflate(R.layout.image_item, null); 
         containerLayout.addView(inflatedView); 
        } 
    
  • 希望這有助於隨意若發現問題進行討論。

    編碼快樂:-)