Android Studio - Neep Help Can someone implement an app on Android Studio simila
ID: 3832534 • Letter: A
Question
Android Studio - Neep Help
Can someone implement an app on Android Studio similar to the one below (pictures are examples of how it should look) and please provide all the JAVA code and XML code!! Greatly appreciate it.
__________________________________
Top 5 List App’s Behavior
When your application first launches, it shouldn’t display previous button. When user clicks to the NEXTbutton, the Number field should decrease, display different image and description or info also PREVIOUSbutton should appear. When user reaches to the end of the top list the NEXT button should disappear.
2. Add Spanish locale to your application and translate all the text used in the application to Spanish using the Google Translate.
Number needs to set dynamically using Format String. (see below pictures)
Android imulator-Copy.Neus.SKAPU25. 65554 11:58 My Top 5List Top 5: The African grey parrot is a medium sized predominantly grey, black billed parrot which weighs 400 g, with a length of 33 cm and an average wingspan of 46-52 cm. The adults weigh between 418 and 526 grams Android Emulator-Copy.Neous.SKAPUS.d65554 1201 My Top5 List Top 5: Number 3 Description: Hamsters are rodents belonging to the subfamily Cricetinae. The subfamily contains about 25 species. They have become established as popular smallhouse pets, and partly because they are easy to breed in captivity Android Emulator-Cogy Neus SKAPU25 65554 11:59 MyTop5List Top 5: Number 1 Description The Vancat is a distinctive landrace of domestic cat, found in the Lake Van region ofeastern Turkey. has blue or amber eyes or is odd-eyed. The variety has been referred to as the swimming cat, and observed to swim in Lake VanExplanation / Answer
we can do this even in a more interactive way, that is what similar to the introduction page , that appears on the startup of the app, i will share the activity what is called intro slider, there is an option for sliding, and at the end there is a button for start u can skip that, this is how the same task would be achieved in a more interactive way
PREF.java
}
MainActivity.java
}
Welcome screen1.xml
</RelativeLayout>
SIMILARLY CREATE FOR SCREEN 2 AND 3 LIKE A NORMAL XML
import android.content.Context; import android.content.SharedPreferences; /** * Created by devil on 3/9/2017. */ public class Prefs { SharedPreferences pref; SharedPreferences.Editor editor; Context _context; //mode int PRIVATE_MODE = 0; // file name private static final String PREF_NAME = "spaceo-demo"; private static final String IS_FIRST_TIME = "IsFirstTime"; public Prefs(Context context) { this._context = context; pref = _context.getSharedPreferences(PREF_NAME, PRIVATE_MODE); editor = pref.edit(); } public void setFirstTimeLaunch(boolean isFirstTime) { editor.putBoolean(IS_FIRST_TIME, isFirstTime); editor.commit(); } public boolean isFirstTimeLaunch() { return pref.getBoolean(IS_FIRST_TIME, true); }}
MainActivity.java
import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private ViewPager viewPager; private MyViewPagerAdapter myViewPagerAdapter; private LinearLayout dotsLayout; private TextView[] dots; private int[] layouts; private Button btnSkip, btnNext; private Prefs prefs; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Checking for first time launch - before calling setContentView() prefs = Application.getApp().getPrefs(); if (!prefs.isFirstTimeLaunch()) { launchHomeScreen(); finish(); } // Making notification bar transparent if (Build.VERSION.SDK_INT >= 21) { getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN); } setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.view_pager); dotsLayout = (LinearLayout) findViewById(R.id.layoutDots); btnSkip = (Button) findViewById(R.id.btn_skip); btnNext = (Button) findViewById(R.id.btn_next); // layouts of all welcome sliders // add few more layouts if you want layouts = new int[]{ R.layout.welcome_screen1, R.layout.welcome_screen2, R.layout.welcome_screen3}; // adding bottom dots addBottomDots(0); // making notification bar transparent changeStatusBarColor(); myViewPagerAdapter = new MyViewPagerAdapter(); viewPager.setAdapter(myViewPagerAdapter); viewPager.addOnPageChangeListener(viewPagerPageChangeListener); btnSkip.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { launchHomeScreen(); } }); btnNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // checking for last page // if last page home screen will be launched int current = getItem(+1); if (current < layouts.length) { // move to next screen viewPager.setCurrentItem(current); } else { launchHomeScreen(); } } }); } private void addBottomDots(int currentPage) { dots = new TextView[layouts.length]; int[] colorsActive = getResources().getIntArray(R.array.array_pager_active); int[] colorsInactive = getResources().getIntArray(R.array.array_pager_inactive); dotsLayout.removeAllViews(); for (int i = 0; i < dots.length; i++) { dots[i] = new TextView(this); dots[i].setText(Html.fromHtml("•")); dots[i].setTextSize(35); dots[i].setTextColor(colorsInactive[currentPage]); dotsLayout.addView(dots[i]); } if (dots.length > 0) dots[currentPage].setTextColor(colorsActive[currentPage]); } private int getItem(int i) { return viewPager.getCurrentItem() + i; } private void launchHomeScreen() { prefs.setFirstTimeLaunch(false); startActivity(new Intent(MainActivity.this, HomeActivity.class)); finish(); } // viewpager change listener ViewPager.OnPageChangeListener viewPagerPageChangeListener = new ViewPager.OnPageChangeListener() { @Override public void onPageSelected(int position) { addBottomDots(position); // changing the next button text 'NEXT' / 'GOT IT' if (position == layouts.length - 1) { // last page. make button text to GOT IT btnNext.setText(getString(R.string.start)); btnSkip.setVisibility(View.GONE); } else { // still pages are left btnNext.setText(getString(R.string.next)); btnSkip.setVisibility(View.VISIBLE); } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }; /** * Making notification bar transparent */ private void changeStatusBarColor() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); } } /** * View pager adapter */ public class MyViewPagerAdapter extends PagerAdapter { private LayoutInflater layoutInflater; public MyViewPagerAdapter() { } @Override public Object instantiateItem(ViewGroup container, int position) { layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = layoutInflater.inflate(layouts[position], container, false); container.addView(view); return view; } @Override public int getCount() { return layouts.length; } @Override public boolean isViewFromObject(View view, Object obj) { return view == obj; } @Override public void destroyItem(ViewGroup container, int position, Object object) { View view = (View) object; container.removeView(view); } }}
Welcome screen1.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/bg_screen1"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:gravity="center_horizontal" android:orientation="vertical" android:id="@+id/linearLayout"> </LinearLayout> <ImageView android:id="@+id/imageView" android:layout_width="300dp" android:layout_height="300dp" app:srcCompat="@drawable/group" android:layout_marginTop="63dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" /> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Group chat" android:textSize="45sp" android:textColor="#ffffff" android:fontFamily="cursive" android:layout_below="@+id/imageView" android:layout_centerHorizontal="true" android:layout_marginTop="15dp" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView" android:layout_centerHorizontal="true" android:layout_marginTop="12dp" android:textSize="22sp" android:fontFamily="cursive" android:textColor="#ffffff" android:text="Special feature to chat in group, live support" /></RelativeLayout>
SIMILARLY CREATE FOR SCREEN 2 AND 3 LIKE A NORMAL XML