android仿美团
‘壹’ 开发一个类似于美团的外卖app需要多少钱
外包开发一套外卖app软件,需要大量专业开发人员参与,开发周期长2个月左右,成本20万起步。
1、需求沟通
要开发一个类似美团的外卖app,涉及的功能模块比较,不同的企业开发重点不一样,所以需要开发公司的产品经理和客户沟通,确定要开发的核心功能,然后由产品经理梳理详细的功能列表,交给用户确认。
2、规划设计
产品经理根据确定的app功能列表,制作app的原型图,包含功能结构、功能在页面上的排布、页面间的交互等,类似于app的草图,由客户确认。
(1)android仿美团扩展阅读
外卖平台app开发出来后并不是一劳永逸的事情,一个APP开发后除了需要团队对其进行维护更新以适应最新的电子产品外,还需要随着市场的变化更新其他功能以满足消费者的需求。后期的技术维护和开发费用也是一笔不可少的资金。
我们开发外卖平台APP的最终目的是推广运营,开拓外卖市场。APP运营过程中需要进行各类的线上线下推广。因此,如果没有足够的资金准备,不建议盲目的去开发外卖平台APP,将资金全部砸在技术上而忽视后期的运营。
‘贰’ Android中GridView如何与广告位轮播实现一起滑动
1.首先自定义一个ViewFlow类。
2.然后定义一个CircleFlowIndicator类。
具体代码依然见源码;
3.接下来就在布局文件中开始使用了
<framelayout android:id="@+id/framelayout" android:layout_height="300dip" android:layout_width="fill_parent" android:orientation="vertical">
</framelayout>代码中有个app:activeType,app:radius 这样的东西,可能新手不是很明白到底是个shenmegui,解释一下这是自定义属性。
使用自定义属性首先要记得把这个属性相应的命名空间给加在布局文件的开头,否则无法编译。
xmlns:app=”http://schemas.android.com/apk/res-auto”
这些属性都对应在attrs.xml文件中可以找到。
4.然后就可以在Activity中调用了,具体的代码是:
/**
* @Description:显示广告条的主页
* @author http://blog.csdn.net/finddreams
*/
public class MainActivity extends Activity {
private ViewFlow mViewFlow;
private CircleFlowIndicator mFlowIndicator;
private ArrayList imageUrlList = new ArrayList();
ArrayList linkUrlArray= new ArrayList();
ArrayList titleList= new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
imageUrlList.add(https://gss0..com/9vo3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg);
imageUrlList.add(https://gss0..com/-fo3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg);
imageUrlList.add(https://gss0..com/-Po3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg);
linkUrlArray.add(http://blog.csdn.net/finddreams/article/details/44301359);
linkUrlArray.add(http://blog.csdn.net/finddreams/article/details/43486527);
linkUrlArray.add(http://blog.csdn.net/finddreams/article/details/43194799);
titleList.add(Android开发面试经——);
titleList.add(Android控件GridView之仿支付宝钱包首页带有分割线的GridView九宫格的完美实现);
titleList.add(Android动画之仿美团加载数据等待时,小人奔跑进度动画对话框 );
initBanner(imageUrlList);
}
private void initView() {
mViewFlow = (ViewFlow) findViewById(R.id.viewflow);
mFlowIndicator = (CircleFlowIndicator) findViewById(R.id.viewflowindic);
}
private void initBanner(ArrayList imageUrlList) {
mViewFlow.setAdapter(new ImagePagerAdapter(this, imageUrlList,
linkUrlArray, titleList).setInfiniteLoop(true));
mViewFlow.setmSideBuffer(imageUrlList.size()); // 实际图片张数,
// ImageAdapter实际图片张数为3
mViewFlow.setFlowIndicator(mFlowIndicator);
mViewFlow.setTimeSpan(4500);
mViewFlow.setSelection(imageUrlList.size() * 1000); // 设置初始位置
mViewFlow.startAutoFlowTimer(); // 启动自动播放
}
}
5.有一个很关键的就是ImagePagerAdapter这个适配器,因为加载网络图片是在这个类里实现的,还有广告条的点击,进入一个Web界面的实现。在这里加载网络图片使用了一个很火的开源项目,UniversalImageLoader(异步加载网络图片) 。
ImagePagerAdapter.class 类:
/**
* @Description: 图片适配器
* @author http://blog.csdn.net/finddreams
*/
public class ImagePagerAdapter extends BaseAdapter {
private Context context;
private List imageIdList;
private List linkUrlArray;
private List urlTitlesList;
private int size;
private boolean isInfiniteLoop;
private ImageLoader imageLoader;
private DisplayImageOptions options;
public ImagePagerAdapter(Context context, List imageIdList,
List urllist, List urlTitlesList) {
this.context = context;
this.imageIdList = imageIdList;
if (imageIdList != null) {
this.size = imageIdList.size();
}
this.linkUrlArray = urllist;
this.urlTitlesList = urlTitlesList;
isInfiniteLoop = false;
// 初始化imageLoader 否则会报错
imageLoader = ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(context));
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_launcher) // 设置图片下载期间显示的图片
.showImageForEmptyUri(R.drawable.meinv) // 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.meinv) // 设置图片加载或解码过程中发生错误显示的图片
.cacheInMemory(true) // 设置下载的图片是否缓存在内存中
.cacheOnDisc(true) // 设置下载的图片是否缓存在SD卡中
.build();
}
@Override
public int getCount() {
// Infinite loop
return isInfiniteLoop ? Integer.MAX_VALUE : imageIdList.size();
}
/**
* get really position
*
* @param position
* @return
*/
private int getPosition(int position) {
return isInfiniteLoop ? position % size : position;
}
@Override
public View getView(final int position, View view, ViewGroup container) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = holder.imageView = new ImageView(context);
holder.imageView
.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
imageLoader.displayImage(
(String) this.imageIdList.get(getPosition(position)),
holder.imageView, options);
holder.imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String url = linkUrlArray.get(ImagePagerAdapter.this
.getPosition(position));
String title = urlTitlesList.get(ImagePagerAdapter.this
.getPosition(position));
/*
* if (TextUtils.isEmpty(url)) {
* holder.imageView.setEnabled(false); return; }
*/
Bundle bundle = new Bundle();
bundle.putString(url, url);
bundle.putString(title, title);
Intent intent = new Intent(context, BaseWebActivity.class);
intent.putExtras(bundle);
context.startActivity(intent);
Toast.makeText(context, 点击了第 + getPosition(position) ,
0).show();
}
});
return view;
}
private static class ViewHolder {
ImageView imageView;
}
/**
* @return the isInfiniteLoop
*/
public boolean isInfiniteLoop() {
return isInfiniteLoop;
}
/**
* @param isInfiniteLoop
* the isInfiniteLoop to set
*/
public ImagePagerAdapter setInfiniteLoop(boolean isInfiniteLoop) {
this.isInfiniteLoop = isInfiniteLoop;
return this;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
}
6.点击进入一个带进度条的WebView的Activity,加载成功就可以了。
‘叁’ android 仿美团外卖的城市定位功能
简单一点儿 用第三方的库定位,网络地图定位。我做过,也不麻烦,看看官方文档自己就能定位出来。不嫌麻烦就用谷歌自己的api写,需要你自己找找想好策略。这个策略指的是,wifi定位还是gps,还是基站(这个叫位置提供者)。也可以这三个都写上,让用户自己配置使用哪个提供者定位。
‘肆’ 做一个类似美团的app要多少钱
饿了么:
饿了么是以web APP起家的,在后来做APP的时候后端已经十分完善了。虽然在这个APP的界面我们看到的功能并没有很多,主要便是菜单浏览,会员中心,购物车,订单管理,在线支付,优惠活动等,开发出两个版本——Android和ios,这样的一个APP的报价在18k~25k区间浮动。但是饿了么这款APP的后台,所做的远远比我们表面上看到的多。所以如果真的要一开始就做一个高仿版的饿了么APP,可以先想象,运营后台,推广平台,数据分析后台,供应商管理系统,订单管理系统,财务结算系统,内部oa系统等等都是充斥在这个APP当中的。仅仅从技术方面来描述,这款APP的开发工作并不困难,但是要把每一个系统串联起来,似一个工作间般,将所有的业务链条打通并且运行,难度就大得多了。用外表和内涵来形容,开发出一个跟饿了么外卖长得像的APP不难,但是以这种方式开发出来也不会像饿了么那般运行得好。倘若真的要做到内外兼修,APP开发起来工作量巨大,因此,花费的时间不会少,而开发一款APP的价格跟开发时间是成正相关的,自然开发价格也不会少。
美团:
美团的产品功能结构图如下:
同样的,美团集了美食、温泉、电影、酒店、外卖、订票、旅游、体检、娱乐、母婴、结婚、培训教育、医疗、丽人等多种功能为一体,功能十分强大和丰富,美团十几年成长出来的APP,想要几个月就完成,前期投入绝对不小。所以往往很多商家企业选择根据不同地区的情况择选功能开发APP。
建议可以去对这些做得好的外卖APP进行分析,若是自己不知道怎么分析的话可以找APP开发公司,在APP开发公司为你进行定制的时候,他们也会自己为你进行分析,根据你自身的情况还有你的目标为你定制你想要的APP,而分析这些外卖功能并不是要复制它,原先进入市场占据了市场空白的APP再复制一份并不会有多好的发展,就像目前没有第二个淘宝一样,但是借鉴是可以的,然后在后期慢慢完善的过程当中,注入自己的“精神”,宣传自己的特别之处,终有一天会成为一款品牌APP。而不是第二个“饿了么”或者“美团”。如果硬是要报个价钱出来,做出这样的APP,少则10w,多可达7位数。只是无论是饿了么还是美团,他们都是一步一步逐渐形成融取价值的,一口气吃成个胖子,往往是撑死的结局。
‘伍’ 想做一个仿美团app上的三级下拉菜单。不是用Android的listview,是用css+jquery做的。高分跪求。
网络:三级下拉菜单,现成代码多多,自己改改css样式,把尺寸换成百分比就行了。或者直接拔美团的源代码,反正都是网页,背后的js、css、img什么的你都看得到。
‘陆’ Android滑动到顶部悬停
无图说卵,先上图
查阅资料后,发现网上大部分都是用这种方法实现的:
多写一个和需要悬浮的部分一模一样的layout,先把浮动区域的可见性设置为gone。当浮动区域滑动到顶部的时候,就把浮动区域B的可见性设置为VISIBLE。这样看起来就像悬浮在顶部不动了。
具体看下边文章 :
高仿美团app,浮动layout滑动到顶部悬停效果
Android实例-仿美团app,浮动layout滑动到顶部悬停效果
这里介绍的是另外一种方式:
最终效果:
‘柒’ Android开发的学习路线大概是怎样的
Java语法——Java面向对象——线程——Android布局——网络——事件——自定义——Android架构整合。会了这一些,Android工作就不是问题了。我有一位老师,讲得很不错,他做了一套视频,发布在网络传课上了,一个阅读器的项目,难度较大,但是对你找工作一定有很大的帮助,可以去听听。