2017-01-03 93 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); 
        } 
    
  • 希望这有助于随意若发现问题进行讨论。

    编码快乐:-)