0

ボレーを使用して、必要なだけ多くの画像を取り込み、水平スクロール ビューに設定できる Android アプリを作成しようとしています。これまでのところ、それらが入ってきていますが、何をしてもスクロールできません。

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:id="@+id/containerLayout" >

    <HorizontalScrollView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/textView1"
        android:id="@+id/scrollLayout">

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


            <ImageView
                android:id="@+id/niv_large"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:scaleType="center" />
        </LinearLayout>
    </HorizontalScrollView> 

</RelativeLayout>

Java ファイル

public class AppActivity extends Activity
{

    private RequestQueue mRequestQueue;
    private ImageLoader imageLoader;
    Button button;



    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate( savedInstanceState );
        mRequestQueue = Volley.newRequestQueue(this);
        imageLoader =  new ImageLoader(mRequestQueue, new DiskBitmapCache(getCacheDir(), 0));
//        final ImageView networkimage = ImageView.class.cast(findViewById(R.id.niv_large));

//        imageLoader.get("http://files.vividscreen.com/soft/b0d52a794a2f44f1a208d1fdf6088125/The-Dark-Knight-Batman-768x1280th.jpg", ImageLoader.getImageListener(networkimage, R.drawable.ic_launcher, R.drawable.ic_launcher));

        ArrayList<String> imageUrls = new ArrayList<String>();

        imageUrls.add( "http://images.cpcache.com/merchandise/514_400x400_Peel.jpg?region=name:FrontCenter,id:28298128,w:16" );
        imageUrls.add( "http://images.cpcache.com/merchandise/514_400x400_NoPeel.jpg?region=name:FrontCenter,id:25042524,w:16" );
        imageUrls.add( "http://michaelkonik.com/wp-content/uploads/2006/06/2014-World-Cup-Logo-400x400.jpg" );
        //imageUrls.add( "http://hdwallsize.com/wp-content/uploads/2013/03/Barcelona-Wallpaper-HD-Lionel-Messi.jpg" );
        //add other image urls as above until done

        LinearLayout containerLayout = new LinearLayout(this);

        LinearLayout.LayoutParams lParams = new LinearLayout.LayoutParams(
                LinearLayout.LayoutParams.MATCH_PARENT,
                LinearLayout.LayoutParams.MATCH_PARENT);



        setContentView( containerLayout, lParams);         

        for( int i = 0; i < imageUrls.size(); i++ )
        {
            ImageView image = new ImageView( this );

            //Log.e( "Checking image stuffs for null",  "Image= " + image + " url=" + imageUrls.get(i) + "imageLoader=" + ImageLoader.getImageListener( image, R.drawable.ic_launcher, R.drawable.ic_launcher) );
            imageLoader.get( imageUrls.get( i ), ImageLoader.getImageListener( image, R.drawable.ic_launcher, R.drawable.ic_launcher) );
            containerLayout.addView( image  );
        }        
                                                                              // icon loading, icon error
    }
4

2 に答える 2

0

XML レイアウト ファイルを読み込んでいないため、XML レイアウト ファイルを操作していないことは明らかです。XML レイアウトを提供する代わりに、独自の LinearLayout を提供します。そのため、スクロールできません。

  1. インスタンス化した LinearLayout を削除し、そこから R.id.myContainer への参照を作成します
  2. setContentView( containerLayout, lParams);と置き換えますsetContentView( R.layout.your_xml);

XML レイアウト ファイルを使用する場合、パラメーターを含める必要はありません。

ソリューション:

XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:id="@+id/containerLayout" >

    <HorizontalScrollView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/textView1"
        android:id="@+id/scrollLayout">

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

    </HorizontalScrollView> 

</RelativeLayout>

ジャワ

public class AppActivity extends Activity
{

    private RequestQueue mRequestQueue;
    private ImageLoader imageLoader;
    Button button;



    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        // TODO Auto-generated method stub
        super.onCreate( savedInstanceState );
        mRequestQueue = Volley.newRequestQueue(this);
        imageLoader =  new ImageLoader(mRequestQueue, new DiskBitmapCache(getCacheDir(), 0));
//        final ImageView networkimage = ImageView.class.cast(findViewById(R.id.niv_large));

//        imageLoader.get("http://files.vividscreen.com/soft/b0d52a794a2f44f1a208d1fdf6088125/The-Dark-Knight-Batman-768x1280th.jpg", ImageLoader.getImageListener(networkimage, R.drawable.ic_launcher, R.drawable.ic_launcher));

        ArrayList<String> imageUrls = new ArrayList<String>();

        imageUrls.add( "http://images.cpcache.com/merchandise/514_400x400_Peel.jpg?region=name:FrontCenter,id:28298128,w:16" );
        imageUrls.add( "http://images.cpcache.com/merchandise/514_400x400_NoPeel.jpg?region=name:FrontCenter,id:25042524,w:16" );
        imageUrls.add( "http://michaelkonik.com/wp-content/uploads/2006/06/2014-World-Cup-Logo-400x400.jpg" );
        //imageUrls.add( "http://hdwallsize.com/wp-content/uploads/2013/03/Barcelona-Wallpaper-HD-Lionel-Messi.jpg" );
        //add other image urls as above until done

        // Get a reference to the LinearLayout inside the HorizontalScrollView
        LinearLayout container = (LinearLayout) findViewById(R.id.myContainer);

        // Replaced container with R.layout.your_xml where 'your_xml' refers to your XML file. Parameters are also not needed since they are as attributes in the XML tag
        setContentView( R.layout.your_xml);         

        for( int i = 0; i < imageUrls.size(); i++ )
        {
            ImageView image = new ImageView( this );

            //Log.e( "Checking image stuffs for null",  "Image= " + image + " url=" + imageUrls.get(i) + "imageLoader=" + ImageLoader.getImageListener( image, R.drawable.ic_launcher, R.drawable.ic_launcher) );
            imageLoader.get( imageUrls.get( i ), ImageLoader.getImageListener( image, R.drawable.ic_launcher, R.drawable.ic_launcher) );

            // Add the view to myContainer using the referece
            myContainer.addView( image );

            //containerLayout.addView( image  );
        }        

        // icon loading, icon error
    }
}
于 2013-07-05T14:57:48.383 に答える