News Feed Android Template

Add News, RSS and WordPress feeds into the ultimate Android News app.

If you’ve ever wanted to create a specialized News app that takes WordPress feeds, News feeds and RSS and puts it in to a beautiful mobile app, then now is your chance. Introducing News Feed (Android) app template, the sleek Android Lollipop optimized Android phone template that’s ready to be turned into the News app of your dreams. It features a lush custom design that puts the content first, while fitting in perfectly with modern Android design touches.  There are even 4 color templates to choose from – run the app on your Android phone, tap a new color and the whole theme changes. It’s the ultimate Android News template.

What’s included in this download

  • Working, Sample .apk Project Download
  • Native Java code that builds in Android Studio View Code
  • Original layered Adobe Photoshop .psd files you can edit
  • 25+ Sliced .png files
  • Extensive Documentation Download
myapptemplates News Feed Android Template

Add News, RSS and WordPress feeds into the ultimate Android News app. If you’ve ever wanted to create a specialized News app that takes WordPress feeds, News feeds and RSS and puts it in to a beautiful mobile app, then now is your chance. Introducing News Feed (Android) app template, the sleek Android Lollipop optimized […]

  • License Details
  • Android Sample Project
  • .PNG Artwork
  • .PSD Files
  • Android 7 Nougat Optimized
  • XHDPI Support
Our iOS and Android app templates are a perfect place to start building awesome apps. Get a functional native code base, eye-catching beautiful artwork with excellent UX, icon artwork and documentation. Make your app so beautiful it can't be ignored

Slide Menu – with 4 colour themes

Settings Screen – with unique slide buttons designed in

Search View

Invite Friends Slide Panel – right slide-in social panel

Content Feed View – beautiful content grid view, with blur drop down

Add Contents Screen

Code Snippet

package com.newsfeeder;

import java.util.ArrayList;

import android.app.ActionBar;
import android.app.ActionBar.OnNavigationListener;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.newsfeeder.custom.CustomActivity;
import com.newsfeeder.model.Feed;
import com.newsfeeder.ui.LeftNavAdapter;
import com.newsfeeder.ui.MainFragment;
import com.newsfeeder.ui.RightNavAdapter;

// TODO: Auto-generated Javadoc
/**
 * The Class MainActivity.
 */
public class MainActivity extends CustomActivity
{

	/** The drawer layout. */
	private DrawerLayout drawerLayout;

	/** ListView for left side drawer. */
	private ListView drawerLeft;

	/** ListView for left side drawer. */
	private ListView drawerRight;

	/** The drawer toggle. */
	private ActionBarDrawerToggle drawerToggle;

	/* (non-Javadoc)
	 * @see com.newsfeeder.custom.CustomActivity#onCreate(android.os.Bundle)
	 */
	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		setActionBarListNavigation();
		setupDrawer();
		setupContainer();
	}

	/**
	 * Sets the action bar drop down list navigation.
	 */
	private void setActionBarListNavigation()
	{
		String items[] = getResources().getStringArray(
				R.array.arr_action_bar_list);

		final ActionBar actionBar = getActionBar();
		actionBar.setDisplayShowTitleEnabled(false);
		actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
				actionBar.getThemedContext(),
				android.R.layout.simple_spinner_item, android.R.id.text1, items);

		adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

		actionBar.setListNavigationCallbacks(adapter,
				new OnNavigationListener() {

					@Override
					public boolean onNavigationItemSelected(int itemPosition,
							long itemId)
					{
						return false;
					}
				});
	}

	/**
	 * Setup the drawer layout. This method also includes the method calls for
	 * setting up the Left & Right side drawers.
	 */
	private void setupDrawer()
	{
		drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
		drawerLayout.setDrawerShadow(R.drawable.drawer_shadow,
				GravityCompat.START);
		drawerToggle = new ActionBarDrawerToggle(this, drawerLayout,
				R.drawable.ic_drawer, R.string.drawer_open,
				R.string.drawer_close) {
			public void onDrawerClosed(View view)
			{
				invalidateOptionsMenu();
			}

			public void onDrawerOpened(View drawerView)
			{
				invalidateOptionsMenu();
			}
		};
		drawerLayout.setDrawerListener(drawerToggle);
		drawerLayout.closeDrawers();

		setupLeftNavDrawer();
		setupRightNavDrawer();
	}

	/**
	 * Setup the left navigation drawer/slider. You can add your logic to load
	 * the contents to be displayed on the left side drawer. It will also setup
	 * the Header and Footer contents of left drawer.
	 * This method also apply the Theme for components of Left drawer.
	 */
	private void setupLeftNavDrawer()
	{
		drawerLeft = (ListView) findViewById(R.id.left_drawer);

		View header = getLayoutInflater().inflate(R.layout.left_nav_header,
				null);
		View footer = getLayoutInflater().inflate(R.layout.left_nav_footer,
				null);

		drawerLeft.addHeaderView(header);
		drawerLeft.addFooterView(footer);

		drawerLeft.setAdapter(new LeftNavAdapter(this, getResources()
				.getStringArray(R.array.arr_left_nav_list)));
		drawerLeft.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3)
			{
				drawerLayout.closeDrawers();
			}
		});

		OnClickListener leftListener = new OnClickListener() {

			@Override
			public void onClick(View v)
			{
				if (v.getId() == R.id.btnAdd)
				{
					startActivity(new Intent(MainActivity.this, AddFeed.class));
					return;
				}
				
				if (v.getId() == R.id.btn)
				{
					startActivity(new Intent(MainActivity.this, Setting.class));
					return;
				}
				
				int th;
				if (v.getId() == R.id.themeBlack)
					th = THEME_BLACK;
				else if (v.getId() == R.id.themeBlue)
					th = THEME_BLUE;
				else if (v.getId() == R.id.themeGreen)
					th = THEME_GREEN;
				else
					th = THEME_RED;
				if (th == theme)
					return;
				saveAppTheme(th);
				startActivity(getIntent().setFlags(
						Intent.FLAG_ACTIVITY_CLEAR_TOP));
			}
		};
		footer.findViewById(R.id.themeBlack).setOnClickListener(leftListener);
		footer.findViewById(R.id.themeBlue).setOnClickListener(leftListener);
		footer.findViewById(R.id.themeGreen).setOnClickListener(leftListener);
		footer.findViewById(R.id.themeRed).setOnClickListener(leftListener);
		View themeCur;
		if (theme == THEME_BLACK)
		{
			themeCur = footer.findViewById(R.id.themeBlack);
			footer.findViewById(R.id.footer).setBackgroundResource(R.drawable.bottom_left_bg_black);
		}
		else if (theme == THEME_BLUE)
		{
			themeCur = footer.findViewById(R.id.themeBlue);
			footer.findViewById(R.id.footer).setBackgroundResource(R.drawable.bottom_left_bg_blue);
		}
		else if (theme == THEME_GREEN)
		{
			themeCur = footer.findViewById(R.id.themeGreen);
			footer.findViewById(R.id.footer).setBackgroundResource(R.drawable.bottom_left_bg_green);
		}
		else
		{
			themeCur = footer.findViewById(R.id.themeRed);
			footer.findViewById(R.id.footer).setBackgroundResource(R.drawable.bottom_left_bg_red);
		}
		themeCur.findViewById(R.id.selected).setVisibility(View.VISIBLE);
		
		View v=header.findViewById(R.id.btnAdd);
		v.setOnTouchListener(TOUCH);
		v.setOnClickListener(leftListener);
		applyBgTheme(v);
		
		v=header.findViewById(R.id.btn);
		v.setOnTouchListener(TOUCH);
		v.setOnClickListener(leftListener);
		
		applyBgTheme(footer.findViewById(R.id.lbl));
		
	}

	/**
	 * Setup the right navigation drawer/slider. You can add your logic to load
	 * the contents to be displayed on the right side drawer. It will also setup
	 * the Header contents of right drawer.
	 */
	private void setupRightNavDrawer()
	{
		drawerRight = (ListView) findViewById(R.id.right_drawer);

		View header = getLayoutInflater().inflate(R.layout.rigth_nav_header,
				null);
		drawerRight.addHeaderView(header);
		
		View v=header.findViewById(R.id.btnFb);
		v.setOnTouchListener(TOUCH);
		v=header.findViewById(R.id.btnTw);
		v.setOnTouchListener(TOUCH);

		ArrayList<Feed> al=new ArrayList<Feed>();
		al.add(new Feed("Kristen Wilkinson", "London", R.drawable.img_f1));
		al.add(new Feed("Phil McKlain", "New York", R.drawable.img_f2));
		al.add(new Feed("Shandra Sven", "Chicago", R.drawable.img_f3));
		al.add(new Feed("Mark Johson", "Los Angeles", R.drawable.img_f4));
		
		drawerRight.setAdapter(new RightNavAdapter(this,al));
	}
	
	
	/**
	 * Setup the container fragment for drawer layout.
	 * This method will setup the grid view display of main contents.
	 * You can customize this method as per your need to display specific content.
	 */
	private void setupContainer()
	{
		getFragmentManager().beginTransaction().replace(R.id.content_frame, new MainFragment()).commit();
	}

	/* (non-Javadoc)
	 * @see android.app.Activity#onPostCreate(android.os.Bundle)
	 */
	@Override
	protected void onPostCreate(Bundle savedInstanceState)
	{
		super.onPostCreate(savedInstanceState);
		// Sync the toggle state after onRestoreInstanceState has occurred.
		drawerToggle.syncState();
	}

	/* (non-Javadoc)
	 * @see android.app.Activity#onConfigurationChanged(android.content.res.Configuration)
	 */
	@Override
	public void onConfigurationChanged(Configuration newConfig)
	{
		super.onConfigurationChanged(newConfig);
		// Pass any configuration change to the drawer toggle
		drawerToggle.onConfigurationChanged(newConfig);
	}

	/* (non-Javadoc)
	 * @see com.newsfeeder.custom.CustomActivity#onCreateOptionsMenu(android.view.Menu)
	 */
	@Override
	public boolean onCreateOptionsMenu(Menu menu)
	{
		super.onCreateOptionsMenu(menu);
		menu.findItem(R.id.menu_refresh).setVisible(true);
		return true;
	}

	/* Called whenever we call invalidateOptionsMenu() */
	/* (non-Javadoc)
	 * @see android.app.Activity#onPrepareOptionsMenu(android.view.Menu)
	 */
	@Override
	public boolean onPrepareOptionsMenu(Menu menu)
	{
		// If the nav drawer is open, hide action items related to the content
		// view
		// boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList);
		// menu.findItem(R.id.action_websearch).setVisible(!drawerOpen);
		return super.onPrepareOptionsMenu(menu);
	}

	/* (non-Javadoc)
	 * @see com.newsfeeder.custom.CustomActivity#onOptionsItemSelected(android.view.MenuItem)
	 */
	@Override
	public boolean onOptionsItemSelected(MenuItem item)
	{
		if (drawerToggle.onOptionsItemSelected(item))
		{
			drawerLayout.closeDrawer(drawerRight);
			return true;
		}
		
		return super.onOptionsItemSelected(item);
	}
}

Template Benefits

  • Android 7 Nougat ready
  • Beautiful, minimal design with excellent UX flow
  • Ready to build and customise right away in Android Studio
  • Prebuilt functionality saves you hundreds of hours of designing, programming, and testing
  • Adheres to Android Design Guidelines for easier app approval
  • The easiest way to create your own app!