Android Restaurant Template
Type of Logo is font "fonts/chef.ttf"
The title of logo change according to name of app in manifest
The animation in Title based on Library of (TitanicTextView)
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
handler = new Handler();
title_logo = (TitanicTextView) findViewById(R.id.logo_title);
TitanicTextView logo_text = (TitanicTextView ) findViewById(R.id.logo_Text);
logo_text.setTypeface(Typefaces.get(this, "fonts/chef.ttf"));
title_logo.setTypeface(Typefaces.get(this, "fonts/YummyCupcakes.ttf"));
title_logo.setText(R.string.app_name);
logo_text.setText(title_logo.getText().toString().substring(0,1));
new Titanic().start(logo_text,MainActivity.this);
new Titanic().start(title_logo,MainActivity.this);
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(generateIntent(R.color.black_trans));
finish();
}
}, 3000+100);
}
Beautifule Thickness Indicator
Custom Sliding Tabs Strip
Hiding Toolbar during Scrolling Recyclerview
MainActivity.java
demo_indicator_trick1.xml
<design.template.restaurant.app.TabLayout.SmartTabLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/viewpagertab"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:clipToPadding="false"
android:paddingLeft="4dp"
android:paddingRight="4dp"
app:stl_defaultTabTextColor="@color/white"
app:stl_defaultTabTextHorizontalPadding="10dp"
app:stl_dividerColor="@color/transparent"
app:stl_dividerThickness="0dp"
app:stl_indicatorColor="@color/black_20"
app:stl_indicatorCornerRadius="18dp"
app:stl_indicatorInterpolation="smart"
app:stl_indicatorGravity="center"
app:stl_indicatorThickness="38dp"
app:stl_underlineColor="@color/transparent"
app:stl_underlineThickness="0dp"
app:stl_indicatorInFront="true"
app:stl_indicatorWidth="auto"
android:layout_gravity="center"
app:stl_distributeEvenly="true"
android:paddingTop="2dp"
android:paddingBottom="2dp"
/>
HomeActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_fragments);
setupToolbar();
mLeftDrawerLayout = (LeftDrawerLayout) findViewById(R.id.id_drawerlayout);
// rvFeed = (RecyclerView) findViewById(R.id.rvFeed);
FragmentManager fm = getSupportFragmentManager();
MyMenuFragment mMenuFragment = (MyMenuFragment) fm.findFragmentById(R.id.id_container_menu);
FlowingView mFlowingView = (FlowingView) findViewById(R.id.sv);
if (mMenuFragment == null) {
fm.beginTransaction().add(R.id.id_container_menu, mMenuFragment = new MyMenuFragment()).commit();
}
mLeftDrawerLayout.setFluidView(mFlowingView);
mLeftDrawerLayout.setMenuFragment(mMenuFragment);
// setupFeed();
ViewGroup tab = (ViewGroup) findViewById(R.id.tab);
tab.addView(LayoutInflater.from(this).inflate(R.layout.demo_indicator_trick1, tab, false));
ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
SmartTabLayout viewPagerTab = (SmartTabLayout) findViewById(R.id.viewpagertab);
viewPagerTab.setCustomTabView(R.layout.custom_tab_text_layout,R.id.custom_text);
// demo.setup(viewPagerTab);
FragmentPagerItems pages = new FragmentPagerItems(this);
// for (int titleResId : tab10()) {
pages.add(FragmentPagerItem.of(getString(tab10()[0]),MenuFragment.class));
pages.add(FragmentPagerItem.of(getString(tab10()[2]),SpecialOffers.class));
pages.add(FragmentPagerItem.of(getString(tab10()[1]),DemoFragment.class));
// }
FragmentPagerItemAdapter adapter = new FragmentPagerItemAdapter(
getSupportFragmentManager(), pages);
viewPager.setAdapter(adapter);
viewPagerTab.setViewPager(viewPager);
}
LabelImageView Discount in meal_day_item_view.xml
<design.template.restaurant.app.Views.LabelImageView
android:id="@+id/url_image_meal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/chicken_meal_photo"
android:adjustViewBounds="true"
/>
Like Animation
You should SmallBang to be attach2Window
MealAdapter.java
private SmallBang mSmallBang;
.
.
.
mSmallBang = SmallBang.attach2Window(context);
....
...
.....
view.setImageResource(R.drawable.heart);
mSmallBang.bang(imageView);
...
.....
......
Badge Price Animation inspired by drage item to order
meal_day_item_view.xml
<design.template.restaurant.app.BadgeView.BGABadgeTextView
android:id="@+id/badgePrice"
style="@style/MatchWrap"
android:layout_marginTop="5dp"
android:padding="15dp"
android:textColor="@android:color/black"
app:badge_dragable="true"
app:badge_padding="15dp"
android:layout_gravity="left"
android:gravity="left"
app:badge_textSize="20dp"
/>
MealAdapter.java
BGABadgeTextView badgePrice = (BGABadgeTextView)itemView.findViewById(R.id.badgePrice);
.
.
.
badgePrice.setDragDismissDelegage(new BGADragDismissDelegate() {
@Override
public void onDismiss(BGABadgeable badgeable) {
int position = getAdapterPosition();
if (listener != null) {
listener.itemSelected(badgeable.getRootView(), getAdapterPosition());
}
ToastUtil.show(list.get(position).getMeal_name());
}
});
...
.....
...
.....
......
fragment_special_offers_demo.xml
<design.template.restaurant.app.PullToRefresh.BeautifulRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/refresh"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rvFeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</design.template.restaurant.app.PullToRefresh.BeautifulRefreshLayout>
SpecialOffers.java
BeautifulRefreshLayout beautifulRefreshLayout = (BeautifulRefreshLayout) view1.findViewById(R.id.refresh);
beautifulRefreshLayout.setBuautifulRefreshListener(new BeautifulRefreshLayout.BuautifulRefreshListener() {
@Override
public void onRefresh(final BeautifulRefreshLayout refreshLayout) {
refreshLayout.postDelayed(new Runnable() {
@Override
public void run() {
refreshLayout.finishRefreshing();
ToastUtil.NoMeals("No New Special Offers", getContext());
}
}, REFRESH_DELAY);
}
});
Pull To Refresh 2
fragment_meals_today_demo.xml
<?xml version="1.0" encoding="utf-8"?>
<design.template.restaurant.app.PullToRefreshCook.PullToRefreshView
android:id="@+id/pull_to_refresh"
app:type="soup"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.v7.widget.RecyclerView
android:id="@+id/rvFeed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</design.template.restaurant.app.PullToRefreshCook.PullToRefreshView>
MealsToday.java
mPullToRefreshView = (PullToRefreshView) view2.findViewById(R.id.pull_to_refresh);
mPullToRefreshView.setOnRefreshListener(new PullToRefreshView.OnRefreshListener() {
@Override
public void onRefresh() {
// mPullToRefreshView.setRefreshing(true);
mPullToRefreshView.postDelayed(new Runnable() {
@Override
public void run() {
mPullToRefreshView.setRefreshing(false);
ToastUtil.NoMeals("No New Meals ", getContext());
}
},REFRESH_DELAY);
}
});
Settings1Activity.java
Controls item Connected with Shared preferences via key and value
addItem(new CheckboxItem(getFragment(), "RememberMeKey").setTitle(getString(R.string.Remember)).setOnCheckedChangeListener(new CheckboxItem.OnCheckedChangeListener() {
@Override
public void onCheckedChange(CheckboxItem item, boolean isChecked) {
if(isChecked) {
ToastUtil.show("Enable");
}else{
ToastUtil.show("Disable");
}
getStorageInterface().save("RememberMeKey", isChecked);
}
}));
addItem(new DividerItem(getFragment()));
addItem(new SwitcherItem(getFragment(), "NotificationKey").setTitle(getString(R.string.push_notification)).setOnCheckedChangeListener(new CheckboxItem.OnCheckedChangeListener() {
@Override
public void onCheckedChange(CheckboxItem item, boolean isChecked) {
getStorageInterface().save("NotificationKey", isChecked);
}
}));