I am using view pager in my app,viewpager is working perfect but i want to add viewpagerindicator,following is my snippet code and xml of ui design can any one tell me what is issue?thanks in advance.............
public class Test_Pager extends Activity{
private String strtd;
String[] imgStr;
ImageView imageView;
ArrayList<String> userImgArrayList;
String[] myURLs;
/*country list*/
JSONArray country_list=null;
private ServiceHandler sh;
private String jsonStr;
private JSONObject jsonObj;
private String user_img;
private String user_pro;
private static String PROFILE_VIEW_URL = "";
private static final String USER_IMG="product_images";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_pagerss);
userImgArrayList = getIntent().getStringArrayListExtra("user_images");
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
ImageAdapter adapter = new ImageAdapter(this);
viewPager.setAdapter(adapter);
// TitlePageIndicator titleIndicator = (TitlePageIndicator) findViewById(R.id.titles);
// titleIndicator.setViewPager(viewPager);
leftss=(ImageView)findViewById(R.id.lefticonsss);
rightss=(ImageView)findViewById(R.id.righticonsss);
imageView = (ImageView) findViewById(R.id.full_image_view);
PROFILE_VIEW_URL="";
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
sh = new ServiceHandler();
// Making a request to url and getting response
jsonStr = sh.makeServiceCall(PROFILE_VIEW_URL, ServiceHandler.GET);
Log.d("Response: ", "> " + jsonStr);
try {
jsonObj = new JSONObject(jsonStr);
/*proview_business = jsonObj.getString(PROFILE_VIEW_BUSINESS);
proview_subcat = jsonObj.getString(PROFILE_VIEW_SUB_CATAGORY);
proview_mainpro = jsonObj.getString(PROFILE_VIEW_MAINPRODUCTS);
proview_expr = jsonObj.getString(PROFILE_VIEW_EXPERIENCE);
proview_cmpname = jsonObj.getString(PROFILE_VIEW_COMPANYNAME);
proview_website = jsonObj.getString(PROFILE_VIEW_WEBSITE);*/
// user_img=jsonObj.getString(USER_IMG);
user_img=jsonObj.getString(USER_IMG);
user_img = "";
userImgArrayList = new ArrayList<String>();//declare userImgArrayList globally like ArrayList<String> userImgArrayList;
JSONArray picarray = jsonObj.getJSONArray(USER_IMG);
for(int i=0;i< picarray.length();i++)
{
user_img = picarray.getString(i);
userImgArrayList.add(user_img);
Log.d("mylog", "curent pro pic = " + user_img);
}
} catch (JSONException e) {
e.printStackTrace();
}
leftss.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
viewPager.setCurrentItem(+1,true);
}
});
}
public class ImageAdapter extends PagerAdapter {
Context context;
ImageAdapter(Context context)
{
this.context=context;
}
@Override
public int getCount() {
return USER_IMG.length();
}
@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager) container).removeView((View) object);
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == ((ImageView) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView imageView = new ImageView(context);
int padding = context.getResources().getDimensionPixelSize(
R.dimen.activity_horizontal_margin);
imageView.setPadding(padding, padding, padding, padding);
//imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
//Picasso.with(context).load(userImgArrayList.get(position)).into(imageView);
Picasso.with(context).load(userImgArrayList.get(position)).resize(200, 200) .into(imageView);
/*for(int i=0; i<myURLs.length;i++)
{
try {
url = new URL(myURLs[i]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
imageView.setImageBitmap(bmp);
}
*/
// imageView.setImageURI(Uri.parse(imgStr[position]));
((ViewPager) container).addView(imageView, 0);
return imageView;
}
}
}
Myxml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@android:color/black"
android:gravity="center_horizontal"
>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/arrow"
android:rotation="180"
android:id="@+id/lefticonsss"
/>
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="150dp"
android:layout_height="150dp"
/>
<ImageView android:id="@+id/full_image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/arrow"
android:id="@+id/righticonsss"
/>
</LinearLayout>
I use this library https://github.com/astuetz/PagerSlidingTabStrip
Summary :
1.do this in your
onCreate
(Optional) If you use an
OnPageChangeListener
with yourViewPager
you should set it in theWidget
rather than on theViewPager
directly.tabs.setOnPageChangeListener(mPageChangeListener);
ViewPagerIndicator
of Jake Wharton is a cusomizedView
which is no difference from other views. So you can use it just like any otherView
s. Of course,ViewPagerIndicator
has some customized attributes of its own, like attrs. Take your snippet for example, I think you did well.PS:Try this:
Hello I see your update code you are trying to use the TitlePageIndicator. I assume that you did implement the
com.jakewharton.android.viewpagerindicator.TitlePageIndicator
I have updated your code please see below the modified code.
In you
PagerAdapter
make sure your didoverride the getTitle(int position)
method, you have to provide the correct data source to your page adapter. getTitle(int position) find the title text from given data source.Let me know if you any further query. thank you