Reputation: 672
I am using horizontal scroll view to list images . But what is happening is multiple images are showing side by side. what I want is to show one image taking full screen width and on scroll show next image my code is as follows
page4.xml:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="match_parent">
<HorizontalScrollView
android:id="@+id/horizontal_scroll"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:id="@+id/linear"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:scaleType="fitCenter">
</LinearLayout>
</HorizontalScrollView>
</RelativeLayout>
page4.java:
package com.example.namrathasrinivas.karnatakatemples;
import android.app.ListActivity;
import android.graphics.BitmapFactory;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.text.method.ScrollingMovementMethod;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Intent;
/**
* Created by namrathasrinivas on 23/07/15.
*/
public class page4 extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page4);
int[] drawables = {R.drawable.img1,R.drawable.img2,R.drawable.img3,R.drawable.img4,R.drawable.img5,R.drawable.img6};
LinearLayout layout = (LinearLayout) findViewById(R.id.linear);
for (int i = 0; i < 6; i++) {
ImageView imageView = new ImageView(this);
imageView.setId(i);
imageView.setPadding(5, 5, 5, 5);
imageView.setImageBitmap(BitmapFactory.decodeResource(
getResources(), drawables[i]));
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
layout.addView(imageView);
}
}
}
Upvotes: 0
Views: 3474
Reputation: 1510
Instead of horizontal scroll view you can use recyclerview as horizontal view is easy for use. Implementation is like:
mRecyclerViewImages.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.HORIZONTAL,true));
Set below view to adapter (take singal image view like):
<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:background="@color/cpb_white"
app:cardElevation="5dp"
app:cardUseCompatPadding="true">
<ImageView
android:id="@+id/test_image"
android:layout_width="@dimen/profile_image_size"
android:layout_height="@dimen/profile_image_size"
android:layout_margin="2dp"
android:background="#DBDBDB"
android:scaleType="center"
android:src="@drawable/camera" />
</android.support.v7.widget.CardView>
Upvotes: 0
Reputation: 3562
If you really want image to be placed in Horizontal scroll view instead of ViewPagers then set the minimum_width property to your ImageView like below
imageView.setMinimumWidth(getScreenWidth());
private int getScreenWidth() {
WindowManager wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size.x;
}
Upvotes: 0
Reputation: 1388
I suggest you used RecyclerView or Viewpager
Articles Collection for RecyclerView
Upvotes: 0