Tuesday, November 26, 2013

Image Slideshow

In this post, you will learn to create a simple image slideshow app for Android. The user can select multiple images from the external card. Then by selecting the show menu item, the images will be displayed in slideshow view. The slideshow process will stop when all images are displayed.
Now, to develop the image slideshow app, you will need to create a new Android project. The project name is ImageSlider.

The first interface that you will see when the app starts up is the list of files and folders in the root directory. From this list, you can navigate to any sub-directory that contains the images to show. You can select or deselect multiple images as you want. The text box above the list displays the current directory. Making change to path in the text box will change the contents of the list. You can use this text box to navigate back and forth in the directory structure.

image slideshow


In this app, a class called BrowseFragment that extends the Fragment class is used to display the list of files and folders from which the user can select images to show or navigate to a lower-level sub-folder. Its layout file (browse_view.xml) defines two components: one EditText and one ListView. The data source of the ListView that contains names of files and folders is set to the ListView by calling the listDirContents method of the MainActivity class. The MainActivity class is discussed later in this tutorial.  Here are the contents of the BrowserFragment.java and browse_view.xml files.

BrowseFragment.java file

package com.example.imageslider;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class BrowseFragment extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.browse_view, container, false);
}

public static BrowseFragment newInstance(String str){

return(new BrowseFragment());
}

public void onStart(){
super.onStart();

}


}


browse_view.xml file

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <EditText
        android:id="@+id/txt_input"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/text_hint" />
 <ListView
        android:id="@+id/files_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
         >
     
   </ListView>

</LinearLayout>


Each item of the ListView contains text and check box. The text represents a file or folder. The check box allows the user to select a file or multiple files. If a folder is selected, the files and sub-folders in that folder will be listed. The file that defines the layout of list item is called mulliststyle.xml in the res/layout directory.

mulliststyle.xml

<?xml version="1.0" encoding="utf-8"?>

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:gravity="center_vertical"
    android:checkMark="?android:attr/listChoiceIndicatorMultiple"
    android:paddingLeft="6dip"
    android:paddingRight="6dip"
/>

When the user selects the show menu item, the images will be displayed in slideshow view. You will need one more class that extends the Fragment class to display the image. This class is called ContentFragment and its layout file is content_view.xml file. The content_view.xml file simply contains the blank LinearLayout container. The component that is used to show the image will be added to the container later by code.

ContentFragment.java file

package com.example.imageslider;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.SurfaceHolder.Callback;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class ContentFragment extends Fragment{
private static Activity mAct;
private static ArrayList<String> args;
private ArrayList<Bitmap> bitmapRes;
private LinearLayout ll;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//Inflate the layout for this fragment
View v=inflater.inflate(R.layout.content_view, container, false);
ll=(LinearLayout) v.findViewById(R.id.layout_view);
//add SurfaceView representing the draw area to the layout
ll.addView(new MyDrawArea(this.getActivity()));
//Toast.makeText(this.getActivity(),"Hello="+ll.getWidth(), Toast.LENGTH_SHORT).show();
return ll;

}
public static ContentFragment newInstance(ArrayList<String> res){
args=res;
return(new ContentFragment());
}

public void onAttach(Activity activity){
super.onAttach(activity);
mAct=activity;

}

public void onStart(){
super.onStart();
//decode images
bitmapRes=processBitmap();
}

class ItemList implements OnItemClickListener{
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
        Toast.makeText(mAct.getBaseContext(), "" + position, Toast.LENGTH_SHORT).show();
        }
}

public ArrayList<Bitmap> processBitmap(){
ArrayList<Bitmap>lst=new ArrayList<Bitmap>();
//get screen dimension
DisplayMetrics metrics=new DisplayMetrics();
mAct.getWindowManager().getDefaultDisplay().getMetrics(metrics);
int rqwidth=metrics.widthPixels;
int rqheight=metrics.heightPixels;
//decode all images
for(int i=0;i<args.size();i++){
Bitmap image=decodeBitmap(args.get(i),rqwidth,rqheight);
lst.add(image);
}
return lst;
}

public Bitmap decodeBitmap(String path,int rqwidth,int rqheight){
BitmapFactory.Options option=new BitmapFactory.Options();
//specify decoding options
option.inJustDecodeBounds=true;
BitmapFactory.decodeFile(path,option);
option.inSampleSize=getSampleSize(option,rqwidth,rqheight);
option.inJustDecodeBounds=false;
return BitmapFactory.decodeFile(path,option);
}

public int getSampleSize(BitmapFactory.Options option, int rqwidth,int rqheight){
int samplesize=1;
int width=option.outWidth;
int height=option.outHeight;
if(width>rqwidth || height>rqheight){
int widthradio=Math.round((float)width/(float)rqwidth);
int heightradio=Math.round((float)height/(float)rqheight);
samplesize=widthradio<heightradio? widthradio:heightradio;

}
return samplesize;
}
//An image can be drawn on SurfaceView
class MyDrawArea extends SurfaceView implements Callback{
private Bitmap bitImage;
Paint p;
MyDrawArea(Context context){
super(context);
getHolder().addCallback(this);
getHolder().setFormat(PixelFormat.TRANSPARENT);
p=new Paint();


}
//This method will be called from the run method to show the image
public void drawImage(){

   Canvas canvas = this.getHolder().lockCanvas();
   canvas.drawColor(Color.BLACK);
   canvas.drawBitmap(bitImage, 0, 0, p);
   this.getHolder().unlockCanvasAndPost(canvas);
}
public void surfaceCreated(SurfaceHolder holder){
SlideThread thread=new SlideThread(holder,this);
thread.start(); //start images slide show
requestLayout();
}
public void surfaceDestroyed(SurfaceHolder holder){

}
public void surfaceChanged(SurfaceHolder holder,int format,int width,int height){

}

public void setBitmap(Bitmap bitmap){
bitImage=bitmap;
}
}

class SlideThread extends Thread{
MyDrawArea marea;
SlideThread(SurfaceHolder holder,MyDrawArea area){
marea=area;
}

public void run(){
for(int i=0;i<bitmapRes.size();i++){
try{
marea.setBitmap(bitmapRes.get(i)); //set the image to show on the drawing area
marea.drawImage(); //call the drawImage method to show the image
Thread.sleep(2200); //delay each image show
}catch(InterruptedException ie){}

}
}

}
}


content_view.xml file

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



In the ContentFragment class, the drawing area object (MyDrawArea class extended SurfaceView class) is added to layout so that the images can be displayed. The SurfaceView class has a method called surfaceCreated. In this method, you will write code to show an images in slideshow view. The SlideThread extends the Thread class handles the image slideshow process. This thread will start from the surfaceCreated method. The run method of the SlideThread class is called when the thread starts. It loops throught the ArrayList object that contains the decoded images. The delay time between images show is specified by the sleep method of the Thread class. While the loop is working the drawImage method is called to show the image on the drawing area.
The ArrayList bitmapRes is used to store the decoded images. The processImage method is called when the ContentFragment starts. The processImage method will decode the images and add them to the bitmapRes. When decoding the image, you can specify a single dimension for all images to fit the screen. It is not good to display an 1050 x 1000 image on the 240 x 432 screen.

The MainActivity class that extends the FragmentActivity class will be used as the container of the BrowseFragment and ContentFragment. When the app firstly starts, BrowseFragment is added to container to display list of files and folders. The BrowseFragment is replaced by the ContentFragment when the user touches the show menu item to display the images. Below are the content of the MainActivity.java file and the layout file of the MainActivity class.

MainActivity.java file

package com.example.imageslider;
import java.io.File;
import java.util.ArrayList;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends FragmentActivity {
ArrayList<String> lstcheckeditems;
int mindex=0;
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (savedInstanceState != null) {
        return;
        }
        //display the browse fragment to show the list of files and folders
        BrowseFragment bf=new BrowseFragment();
        FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
        transact.add(R.id.fragment_container,bf);
        transact.addToBackStack(null);
        transact.commit();
     
 
    }

public void onBackPressed() {
LinearLayout view = (LinearLayout) findViewById(R.id.layout_view);      
if(view!=null){
BrowseFragment df=new  BrowseFragment();
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.replace(R.id.fragment_container, df);
transact.addToBackStack(null);
transact.commit();
onStart();
}
else
System.exit(0);
}

public void onStart(){
 super.onStart();
 regControls();
 lstcheckeditems=new  ArrayList<String>() ;
}

public void regControls(){
EditText et=(EditText) findViewById(R.id.txt_input);
    et.addTextChangedListener(new ChangeListener());
    et.setText("/");
    ListView lv=(ListView) findViewById(R.id.files_list);
    lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    lv.setOnItemClickListener(new ClickListener());
}

class ChangeListener implements TextWatcher{
   
    public void beforeTextChanged(CharSequence s, int start, int before, int count){
   
   
    }
   
    public void onTextChanged(CharSequence s, int start, int before, int count){
    EditText et=(EditText) findViewById(R.id.txt_input);
    String txt=et.getText().toString();
    listDirContents(txt);
    }
   
    public void afterTextChanged(Editable ed){
   
   
    }
    }
 
    class ClickListener implements OnItemClickListener{
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      // selected item
            String selectedItem = ((TextView) view).getText().toString();
            EditText et=(EditText) findViewById(R.id.txt_input);        
            String path=et.getText().toString()+"/"+selectedItem;          
            File f=new File(path);
            if(f.isDirectory())
            et.setText(path);            
         
            else if(f.isFile() && (path.endsWith(".jpg") || path.endsWith(".png") || path.endsWith(".gif")))
            {
            if(lstcheckeditems.contains(path))
            lstcheckeditems.remove(path);
            else
            lstcheckeditems.add(path);
            }
           
      }
      public void onNothingSelected(AdapterView<?> parent){
     
      }
     
     
      }
 

 
    public void listDirContents(String path){
    ListView l=(ListView) findViewById(R.id.files_list);
   
    if(path!=null){
    try{
    File f=new File(path);    
    if(f!=null){
    String[] contents=f.list();
    if(contents.length>0){
    ArrayAdapter<String> aa=new ArrayAdapter<String>(this,R.layout.muliststyle,contents);
    l.setAdapter(aa);
    }
    }
    }catch(Exception e){}
    }
   
 
   
    }

    public void show(ArrayList<String> res){
    if(res.size()>0){
    ContentFragment cf=ContentFragment.newInstance(res);
    FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
    transact.replace(R.id.fragment_container, cf);
    transact.addToBackStack(null);
    transact.commit();
    }
   
    }
 
 
 
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
    public boolean onOptionsItemSelected(MenuItem item)
    {
     
        switch (item.getItemId())
        {
        case R.id.menu_show:
        show(lstcheckeditems);
             return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }  

 
}

activity_main.xml file

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

The regControls method registers the text change event to the EditText component and the click event to the ListView component so that the user can make change to the text box and select items of the list. It is called when the main activity starts.
The listDirContents is also called when the main activity starts to read the files and folders from the root directory of Android device and show them in the list.
The show method is called when the user touches the show menu item. This method will replace the BrowseFragment by the ContentFragment fragment on the MainActivity. Then the images slideshow works. You will need to edit the main.xml file in the res/menu directory. This file defines the show menu item. The content of the main.xml file should look similar to the following:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@+id/menu_show"
     android:title="Show" />
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:showAsAction="never"
        android:title="@string/action_settings"/>
 

</menu>

Now you are ready to run the program and test it. If you have questions, please leave them at the comment section. I will reply as soon as possible.
compass app flashLight app

143 comments:

  1. I have come across better blog writers who are capable of holding the attention of their readers. You can check out some really awesome blogs at www.zopthemes.com. As I can clearly make out your amateurish content, you can brush up your writing skills with the help of good blogging tips at buy yelp accounts,excellent invitation flyers. Hey…no personal feelings. Just wanted to help.

    ReplyDelete
    Replies
  2. I learn the slide show java function from here. You deliver the detailed Java coding which is good for every reader to understand this program. Conference Apps For Android

    ReplyDelete
  3. Usually I do not read post on blogs, but I would like to say that this write-up very forced me to try and do it! Your writing style has been surprised me. Great work admin..Keep update more blog..

    Digital marketing company in Chennai

    ReplyDelete
  4. Apple Watch on watchOS 2 Hacked to Run Truly Native Apps Including 'Canabalt' and 'Flappy Bird' Clone Economics Assignment Help

    ReplyDelete
  5. There has to be some kind of reprieve for people with learning disability.
    http://www.essayarsenal.co.uk/essay-editing-services-by-professional-editors.aspx

    ReplyDelete
  6. Can you please send me your source code?
    christineramos099@gmail.com

    ReplyDelete
  7. Assignment writing is the task that often troubles the students. You may be having the same experince. In such circumstances, you can opt for our assignment help online and can get a quality assignment written from us. Assignment Expert

    ReplyDelete
  8. This comment has been removed by the author.

    ReplyDelete
  9. I’m really impressed with your blog article, such great & useful knowledge you mentioned here
    Android App Developers

    ReplyDelete
  10. Hi, thanks for sharing image slideshow. but The first interface that you will see when the app starts up is the list of files and folders in the root directory. From this list, you can navigate to any sub-directory that contains the images to show. You can select or deselect
    Dissertation Writing Services

    ReplyDelete

  11. Great post! Bookmarking your site and will visit it again. Keep sharing informative blog.

    iOS App Development Company

    ReplyDelete
  12. Nice it seems to be good post... It will get readers engagement on the article since readers engagement plays an vital role in every

    blog.. i am expecting more updated posts from your hands.
    Mobile App Development Company
    Mobile App Development Company in India
    Mobile App Development Companies

    ReplyDelete
  13. Some people think that writing is an innate skill and people are born with it. You will be surprised to k
    where to buy research papers

    ReplyDelete
  14. I have a website where students buy dissertation online and hope so that using the image slideshow as you have mentioned here, I will be able to make my website best.

    ReplyDelete
  15. I have just stumbled upon this post and I must admit that I'm glad that I did it. Nursing Capstone Project. Have you been wondering about where you can get professional nursing capstone project writing help? If yes, then you might want to click on the link above.

    ReplyDelete
  16. I appreciate it!. I really like it when people get together and share ideas. Great website, continue the good work!. Either way, great web and I look forward to seeing it grow over time. Thank you so much.
    super smash flash 2

    ReplyDelete
  17. It is all thanks to a post on interior decoration accessories, that i was redirected to this post. It may not have been my very wish to visit this post, however it is very professional and informative. You have the chance to know more about interior decoration items and designs. Visit our website today.

    ReplyDelete
  18. This new project of image sliding app is interesting. Here your can describe its java script helps to understand how the app is working. Its very useful information.

    ReplyDelete
  19. In your website image sliding app is good. This is very important information. thanks for sharing..

    ReplyDelete
  20. Students Assignment Help offers the top Singapore Assignment Help services to all college students around the world. Our skilled writers aid you in writing assignments at a low price.

    ReplyDelete
  21. Without the shabby and overpowering stench of numerous economically accessible air freshener items, reed diffusers have turned into an inexorably prominent approach to tenderly aroma and refresh indoor air. Marketing Assignment help |

    ReplyDelete
  22. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well need a photographer| content writers

    ReplyDelete
  23. Thank you so much for share such a wonderful information and ideas.The author clearly describe all the parts of the article and we can easily understand each and every information. write my essay ireland

    ReplyDelete
  24. You left me wowed, I feel luck I found your website. Keep producing the great content Assignment writing services in UK

    ReplyDelete
  25. Get our make my assignment service benefits and get the best quality help from our task essayists. They are capable in finishing your task. We have in excess of 3000 Expert Writers to help you.

    ReplyDelete
  26. This is the one best information over the internet because it is really helpful form all people so i recommended to all for read at once. Just like students can choose cheap assignment writing help by "CompleteMyAssignment" which have top level of assignment writers.

    ReplyDelete
  27. I read this article. I think You put a lot of effort to create this article. I appreciate your work.
    Dissertation Writing Services

    ReplyDelete
  28. Visit for computer tips to manage all type of projects.

    ReplyDelete
  29. It is so helpful and it is kind of nice to know exactly you published this information here, along with I found a valuable post on best antivirus for windows 8.1, so I am sharing this guide with you.

    ReplyDelete
  30. Thank You So Much For providing the important and Knowledgeable information.
    I am Olivia Crew, SEO Expert in a reputed company livewebtutors. All of your information is very useful to me. I am working as an academic consultant in Australia and offer Excellent Assignment Help Services to college students.
    visit here:- my assignment help

    ReplyDelete
  31. I really happy found this website eventually.. Really informative and inspirative !!Thanks for the post and effort ! Please keep sharing more such article. I've really like your blog and inspire me in many ways We have already set a high standard for coursework help.
    visit here:- coursework help

    ReplyDelete
  32. It is easy to understand, detailed and meticulous! I have had a lot of harvest after watching this article from you! I feel it interesting, your post gave me a new perspective! I have read many other articles about the same topic, but your article convinced me! I hope you continue to have high quality articles like this to share with veryone!

    ReplyDelete
  33. I will never read such beautiful information that you shared. Ever. Oh damn… I just got older. I want more detailed information like i found about finest phone cleaner app and antivirus 2018 for more details you can read more at ITL phone cleaner website.

    ReplyDelete
  34. Good Way Of Telling, Good Post To Take Facts Regarding My Presentation Subject Matter, Which I Am Going To Deliver In My College

    ReplyDelete
  35. Science Channel’s Are Giving A Complete Knowledge To Its Viewers About Every Thing Students Write Done Dissertation On This Subjects And Show Its Importance.

    ReplyDelete
  36. I learned how to create a simple photo slideshow app for Android. It is very helpful to me. thank you.
    duck life

    ReplyDelete
  37. Thanx For Sharing Such Useful Post Keep It Up :)

    ReplyDelete
  38. Great site and a great topic as well I really get amazed to read this. It’s really good. I like viewing web sites which comprehend the price of delivering the excellent useful resource free of charge. gramophone

    ReplyDelete
  39. I am very happy to read this. This is the kind of manual that needs to be given and not the random misinformation that’s at the other blogs. Appreciate your sharing this best posting. Cost Accounting Assignment Help

    ReplyDelete
  40. nice article in your blog.thank you for sharing useful info.
    visit
    web programming tutorial
    welookups

    ReplyDelete
  41. Thank you for posting such a great blog! I found your website perfect for my needs. It contains wonderful and helpful posts. Keep up the good work. Thank you for this wonderful Blog!
    Visit: Homework Help

    ReplyDelete
  42. Very well explained. Your website is perfect for providing technology related solution. kaplan assignments help

    ReplyDelete
  43. This is one of the best blogs, I have seen. Thank you so much for sharing this valuable blog. Visit for
    Web Development Company

    ReplyDelete
  44. Great site and a great topic as well I really get amazed to read this. It’s really good. I like viewing web sites which comprehend the price of delivering the excellent useful resource free of charge. brass ganesh

    ReplyDelete
  45. I am very happy to read this. This is the kind of manual that needs to be given and not the random misinformation that’s at the other blogs. Appreciate your sharing this best posting. Assignment Maker

    ReplyDelete
  46. Hello,
    I am Sophia Miller
    thanks for sharing this post.

    provide you best Assignment help Australia anytime.

    ReplyDelete
  47. Hello
    My name is Chris Paul and This is a very awesome post. Thanks for sharing this.
    For Best ITC 571 assignment help in US for 24*7.

    ReplyDelete
  48. Nice post. I was checking continuously this weblog and I am impressed! Extremely helpful information specially the remaining phase ?? I deal with such information a lot. I was seeking this certain info for a very lengthy time. Thank you and best of luck.Kryptowaluty , sprawdz rowniez kursy kryptowalut

    ReplyDelete
  49. Welcome to AZLyrics! It's a place where all searches end! We have a large, legal, every day growing universe of punjabi song lyrics where stars of all genres and ages shine.

    ReplyDelete
  50. I am very happy to read this. This is the kind of manual that needs to be given and not the random misinformation that’s at the other blogs. Appreciate your sharing this best blog. Visit Here: Web Application Development Company.

    ReplyDelete
  51. Thanks for sharing this information. I have shared this link with others keep posting such information. To provide best in assignment help online at very affordable prices.
    Assignment help in Australia
    Management Assignment Help
    Dissertation Writing Services
    Thesis Writing Help
    Assignment Help in Australia

    ReplyDelete
  52. I found this one pretty fascinating and it should go into my collection. Very good work! I am Impressed. We appreciate that please keep going to write more content. We are the assignment helper, we provide services all over the globe. We are best in these:-
    Assignment Help in Australia
    Law Assignment Help
    Engineering Assignment Help
    Statistics Assignment Help
    Finance Assignment Help
    Math Assignment Help

    ReplyDelete
  53. You will be share this this information are really helpful for me, keep sharing this type article, If any on search jeans supplier please visit our company.
    Jeans Supplier in Delhi

    ReplyDelete
  54. You will be share this blog are really useful for me, thank you so much for share this valuable information with us, if you are search printing company please visit our company.
    Flex Board Printing

    ReplyDelete
  55. Am really happy to saw this I deeply read your article and it’s really useful for me, thank for share this great information with us, if you searching the web designing company please contact with us.
    Web designing company in delhi

    ReplyDelete
  56. Great useful information you will be with us, keep sharing this type valuable information, if you searching the web designing company please contact with us.
    Motorcycle Tours in India

    ReplyDelete
  57. I really like to read your valuable information you will be mention on your blog it’s really useful full for me, keep sharing like this type article, thank you so much for share with us.
    Lifestyle Magazine

    ReplyDelete
  58. Am really happy to ask with you I deeply read your article and it’s really great and valuable information you will mention on this I really like to see this awesome blog, if any one read my comment if you search transportation please contact with our company.
    Sea Freight Company in Delhi

    ReplyDelete
  59. Nice Post
    My name is Joseph Wong and thanks for sharing this information.
    Get the best Assignment Help in Australia.
    Thanks.

    ReplyDelete
  60. Nice Post
    Web and Mobile Application solution provider company Locus Rags
    Thanks.

    ReplyDelete
  61. Hello
    My name is Alena Carter and This is a very nice post, Thanks for Sharing.

    One of the best IT company Locus Rags in India.

    ReplyDelete
  62. power testo blast :which allows you get thinner without you having to deprive yourself. It's an all too typical trend in weight-loss diet plans. Some deprive themselves of everything from various foods to carbohydrates in an attempt to lessen extra personal body weight. Unfortunately, all this accomplishes is a serious plant pollen complement
    https://newsletterforhealth.com/power-testo-blast/

    ReplyDelete
  63. Take Rental A Car and pick from least expensive practical vehicles at limited rates that will guarantee extreme driving background requiring little to no effort. https://www.takku.com/

    ReplyDelete
  64. cerisea medica
    Those who successfully decrease bodyweight and keep them off are the ones who adapt to living that keeps a appropriate bodyweight after initial weight-loss. For those looking for the secrets of weight-loss success, it's an exceptional concept to look closely at the techniques used by those who have losing .
    https://newsletterforhealth.com/cerisea-medica/

    ReplyDelete
  65. Beta keto . new set of challenges in preserving your determine, even for the best intentioned of us. However, you should know that you are not alone, nor do you have to suffer through going to commercial gyms where everyone there is already fit. There is an affordable solution to going to a commercial gym, but like determine throughout the year, the holiday season often presents a
    https://newsletterforhealth.com/beta-keto/

    ReplyDelete
  66. Keto fast surgery/chronic illnessAnyone who has an essential operation - a tremendous shock somewhere - may notice increased locks dropping within one to 3 a few several weeks afterwards. The scenario reverses itself within a couple of a few several weeks but those who have a serious chronic illness may shed locks indefinitely. A relatively unidentified fact is that locks hair transplant surgery therapy treatment can
    https://newsletterforhealth/keto-fast/

    ReplyDelete
  67. Hello
    My name is Alena Carter and This is a very nice post, Thanks for Sharing.

    Get the best of Assignment help Australia anytime.

    ReplyDelete
  68. Excellent Post as always and you have a great post and i like it thank you for sharing

    โปรโมชั่นGclub ของทางทีมงานตอนนี้แจกฟรีโบนัส 50%
    เพียงแค่คุณสมัคร Gclub กับทางทีมงานของเราเพียงเท่านั้น
    ร่วมมาเป็นส่วนหนึ่งกับเว็บไซต์คาสิโนออนไลน์ของเราได้เลยค่ะ
    สมัครสล็อตออนไลน์ >>> goldenslot
    สนใจร่วมลงทุนกับเรา สมัครเอเย่น Gclub คลิ๊กได้เลย

    ReplyDelete
  69. This is really an amazing blog. Your blog is really good and your article has always good thank you for information.

    เว็บไซต์คาสิโนออนไลน์ที่ได้คุณภาพอับดับ 1 ของประเทศ
    เป็นเว็บไซต์การพนันออนไลน์ที่มีคนมา สมัคร Gclub Royal1688
    และยังมีหวยให้คุณได้เล่น สมัครหวยออนไลน์ ได้เลย
    สมัครสมาชิกที่นี่ >>> Gclub Royal1688
    ร่วมลงทุนสมัครเอเย่นคาสิโนกับทีมงานของเราได้เลย

    ReplyDelete
  70. rapid slim
    mall. Instead of focusing on going to the gym or jogging try to establish software where you can train every opportunity you get during the day. There are alternative and you need to look for them and implement them. Second product, strategy a certain route through your favorite meals store that will
    https://newsletterforhealth.com/rapid-slim/

    ReplyDelete
  71. maxx power libido
    .jokes on you. This year, Jean hired training instructor who was knowledgeable and had clients that were extremely satisfied with their own health and fitness and health and health and fitness and health and health and fitness outcomes. She realized that there was no quick solution to her weight-loss concerns
    https://newsletterforhealth.com/maxx-power-libido/

    ReplyDelete
  72. I am very happy to read this. This is the kind of manual that needs to be given and not the random misinformation that’s at the other blogs. Appreciate your sharing this best posting. SEO Directory

    ReplyDelete
  73. keto blast occasions when using Natural tea or weight-loss tea could give cause for concern. Balance diet: Green tea is undeniably an awesome formula to shed bodyweight but it functions only when it is accompanied with appropriate diet strategy. Natural tea is not a magical cure that will turn and transform you
    https://topwellnessblog.com/keto-blast/

    ReplyDelete
  74. Gotoassignmenthelp is a round the clock assignment help service which caters solutions request to various subjects’ tools & methodology in a multi environment learning concept for the subjects like online assignment help. We are a renowned service provider of do my assignment and have been receiving an overwhelmed response by the British and nearby the territories.
    We offer plagiarism free, original content to our clients and facilitated are clients to grow their career by using the services of our proven Ph.D. experts, as we understand how important grades for students within their academic purview. u will experience a hassle-free service and top-class quality.

    ReplyDelete
  75. Gotoessayhelp is a round the clock essay help service which caters solutions request to various subjects’ tools & methodology in a multi environment learning concept for the subjects like essay help online. We are a renowned service provider of essay assignment help and have been receiving an overwhelmed response globally.
    We offer plagiarism free, original content to our clients and facilitated are clients to grow their career by using the services of our proven Ph.D. experts, as we understand how important grades for students within their academic purview. u will experience a hassle-free service and top-class quality.

    ReplyDelete
  76. GotoDissertationHelp.co.uk is leading plagiarism free dissertation help in U.K. We provide customized dissertation editing services. We are leading the market for more than a decade now and have acquired the name of being the best custom dissertation writing for our comprehensive services at pocket-friendly rates.

    ReplyDelete
  77. Hello
    My name is Jacob Parker and This is a very nice post, Thanks for Sharing.

    Best LOCUS RAGS IT Company in India.

    ReplyDelete
  78. The article is very interesting and very understood to be read, may be useful for the people. I wanted to thank you for this great read!! I definitely enjoyed every little bit of it. I have to bookmarked to check out new stuff on your post. Thanks for sharing the information keep updating, looking forward for more posts..

    Top 5 Web Designing Company In India | SEO Company In India

    ReplyDelete
  79. provexum ones: 1. Prostatitis – sickness of the prostate glandular Bladder sickness, bladder stones or uti Urethritis – swelling of the urethra Orchitis – swelling of the duplication areas of a persons body 5. Epididymitis – sickness of the epididymis 6. Prostate Cancer 7. Phimosis – when the sheath will not
    https://newsletterforhealth.com/provexum/

    ReplyDelete
  80. Sharing information with others is good. I also want to share some good links for students all across the world. There is a team providing assignment help , which includes writing help service in different subjects. Like as Mechanical Engineering Assignment Help , Electronics Engineering Assignment Help, MATLAB Assignment Help

    ReplyDelete
  81. Sharing information with others is good. I also want to share some good links for students all across the world. There is a team providing assignment help , which includes writing help service in different subjects. Like as Management Assignment Help , Marketing Management Assignment Help, Business Management Assignment Help

    ReplyDelete
  82. Wonderful post. Student Assignment Help is No 1 assignment help firm in Australia. Our team of creative writers always help the student to complete their assignment easily before the deadline and solve academic quires.

    ReplyDelete
  83. Sharing information with others is good. I also want to share some good links for students all across the world. There is a team providing Management Assignment Help to all MBA students all across the globe. Also if you are looking for CDR Report Help there are service provider who also include RPL report writing and Ka02 writing services.

    ReplyDelete
  84. Many of the people are depressed about the problems of essay writing. Well, don’t worry about that because we are providing this service at a very reasonable price.
    Online Assignment Help Australia
    5 effective database assignment ideas
    psychology assignment help
    6 Benefits of Meditation to Students
    Best Statics Assignment Help
    Best Assignment Help
    Top Assignment Help

    ReplyDelete
  85. Thanks for sharing the useful and informative information, i like your all articles. i am also a blogger, writing different - different topics. If you are interested to reading my website articles, please read once - Finance Assignment Help

    ReplyDelete
  86. Your information is very detailed and useful to me, thank you for sharing. I hope you will always be up to date. know about anveshi jain.

    ReplyDelete