买酒送旅游活动方案【优秀5篇】
一款基于Material Desgin设计的APP 篇1
一款基于Material Desgin设计的APP
介绍
淘School是一款基于MD的一款校园二手商品交易平台,当然小编只是简单的开发了一些功能,并没有完善,只是想做一款MD的APP,并没有交易支付的功能,只是把我感觉比较好的MD的一些组件融到了项目中,下面小编来详细介绍一下用到的技术:
因为小编服务器端不是很熟练,所以就用了Bmob,还不错挺容易上手的,就依赖了它的两个库而已,网络请求和模型都是封装好的,我们直接调用就可以。
先看一下小编引用的一些库吧:
compile 'com.android.support:appcompat-v7:23.1.0'
compile files('libs/BmobSDK_V3.4.5_1111.jar')
compile files('libs/okio-1.4.0.jar')
compile 'com.android.support:support-v4:23.1.0'
compile 'com.github.manuelpeinado.fadingactionbar:fadingactionbar-abc:3.1.2'
compile 'com.android.support:design:23.1.0'
compile 'com.pnikosis:materialish-progress:1.7'
compile 'me.drakeet.materialdialog:library:1.2.8'
compile 'com.jakewharton:butterknife:7.0.1'
compile ':universal-image-loader:1.9.5'
compile 'com.weiwang.betterspinner:library:1.1.0' compile 'com.nineoldandroids:library:2.4.0'
1.Android Support Desgin
CollapsingAvatarToolbar 头像随ListView滚动缩回到ActionBar特效
TextInputLayout带动画的输入框
2.ActionBarDrawerToggle、DrawerLayout、ActionBar 结合
3.RippleEffect水波纹效果
4.PagerSlidingTabStrip+viewpager实现选项卡左右滑动
5.FloatActiconButton悬浮按钮实现仿钉钉悬浮按钮
6.PullToZoomScrollView实现下拉自动放大头部View
7.materialdialog实现的对话框
8.MaterialSpinner实现的带效果的spinner
9.butterknife注解框架
小编用到的技术基本上就这些,下面小编会详细的介绍一下。
技术实现
1、主界面
先介绍一下主界面吧,主界面小编用的是ActionBarDrawerToggle+DrawerLayout+ActionBar实现的滑动抽屉效果。布局文件就不介绍了,这个用的也挺多的,网上资料也很多,介绍几个方法吧
//设定左上角突变可点击
getSupportActionBar()。setHomeButtonEnabled(true);
// 给左上角图标的左边加上一个返回的图标 。对应ActionBar.DISPLAY_HOME_AS_UP
getSupportActionBar()。setDisplayHomeAsUpEnabled(true);
//设置标题 getSupportActionBar()。setTitle(getResources()。getString(R.string.action_title));
// 使自定义的普通View能在title栏显示,即actionBar.setCustomView能起作用,对应ActionBar.DISPLAY_SHOW_CUSTOM
actionBar.setDisplayShowCustomEnabled(true) closeDrawers();//关闭抽屉
2、滑动选项卡
小编主界面的滑动选项卡用的是PagerSlidingTabStrip+viewpager管理fragment
3、主界面的悬浮按钮
悬浮按钮在github上有Demo,
用的是第一个,然后重写了一下里面的滑动监听实现了listview滑动显示隐藏按钮。看一下布局文件:
<
android:id=“@+id/multiple_actions”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_alignParentBottom=“true”
android:layout_alignParentRight=“true”
android:layout_alignParentEnd=“true”
fab:fab_addButtonColorNormal=“@color/origle”
fab:fab_addButtonColorPressed=“@color/origle_tab”
fab:fab_addButtonPlusIconColor=“@color/white”
fab:fab_labelStyle=“@style/menu_labels_style”
android:layout_marginBottom=“@dimen/smaller_space”
android:layout_marginRight=“@dimen/smaller_space”
android:layout_marginEnd=“@dimen/smaller_space”>
<
android:id=“@+id/fb_update”
android:src=“@drawable/update”
fab:fab_labelStyle=“@style/menu_labels_style”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
fab:fab_colorNormal=“@color/theme_color”
fab:fab_colorPressed=“@color/theme_color_tab”/>
<
android:id=“@+id/fb_new”
fab:paddingEnd=“@dimen/small_space”
android:src=“@drawable/edit”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
fab:fab_colorNormal=“@color/theme_color”
fab:fab_colorPressed=“@color/theme_color_tab”/>
<
android:id=“@+id/fb_person”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:src=“@drawable/title_person”
fab:fab_colorNormal=“@color/theme_color”
fab:fab_colorPressed=“@color/theme_color_tab”/>
下面是重写的ListView滑动监听实现显示隐藏悬浮按钮
public void attachToListView(@NonNull AbsListView listView,
ScrollDirectionListener scrollDirectionListener,
onScrollListener) {
AbsListViewScrollDetectorImpl scrollDetector = new AbsListViewScrollDetectorImpl();
scrollDetector.setScrollDirectionListener(scrollDirectionListener);
scrollDetector.setOnScrollListener(onScrollListener);
scrollDetector.setListView(listView);
scrollDetector.setScrollThreshold(mScrollThreshold);
listView.setOnScrollListener(scrollDetector);
}
private class AbsListViewScrollDetectorImpl extends AbsListViewScrollDetector {
private ScrollDirectionListener mScrollDirectionListener;
private mOnScrollListener;
private void setScrollDirectionListener(ScrollDirectionListener scrollDirectionListener) {
mScrollDirectionListener = scrollDirectionListener;
}
public void setOnScrollListener onScrollListener) {
mOnScrollListener = onScrollListener;
}
@Override
public void onScrollDown() {
show();
if (mScrollDirectionListener != null) {
();
}
}
@Override
public void onScrollUp() {
hide();
if (mScrollDirectionListener != null) {
();
}
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
if (mOnScrollListener != null) {
(view, firstVisibleItem, visibleItemCount, totalItemCount);
}
(view, firstVisibleItem, visibleItemCount, totalItemCount);
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (mOnScrollListener != null) {
(view, scrollState);
}
(view, scrollState);
}
}
public void show() {
show(true);
}
public void hide() {
hide(true);
}
public void show(boolean animate) {
toggle(true, animate, false);
}
public void hide(boolean animate) {
toggle(false, animate, false);
}
private void toggle(final boolean visible, final boolean animate, boolean force) {
if (mVisible != visible || force) {
mVisible = visible;
int height = getHeight();
if (height == 0 && !force) {
ViewTreeObserver vto = getViewTreeObserver();
if (vto.isAlive()) {
vto.addOnPreDrawListener(new () {
@Override
public boolean onPreDraw() {
ViewTreeObserver currentVto = getViewTreeObserver();
if (currentVto.isAlive()) {
(this);
}
toggle(visible, animate, true);
return true;
}
});
return;
}
}
int translationY = visible ? 0 : height + getMarginBottom();
if (a {
ViewPropertyAnimator.animate(this)。setInterpolator(mInterpolator)
。setDuration(TRANSLATE_DURATION_MILLIS)
。translationY(translationY);
} else {
ViewHelper.setTranslationY(this, translationY);
}
// On pre-Honeycomb a translated view is still clickable, so we need to disable clicks manually
if (!hasHoneycombApi()) {
setClickable(visible);
}
}
}
private int getMarginBottom() {
int marginBottom = 0;
final ViewGroup.LayoutParams layoutParams = getLayoutParams();
if (layoutParams instanceof ViewGroup.MarginLayoutParams) {
marginBottom = ((ViewGroup.MarginLayoutParams) layoutParams)。bottomMargin;
}
return marginBottom;
}
private boolean hasHoneycombApi() {
return Build.VERSION.SDK_INT>= Build.VERSION_CODES.HONEYCOMB;
} }
然后再activity中这样用:
fab.attachToListView(lvProduct, new ScrollDirectionListener() {
@Override
public void onScrollDown() {
Log.d(“ListViewFragment”, “onScrollDown()”);
}
@Override
public void onScrollUp() {
Log.d(“ListViewFragment”, “onScrollUp()”);
}
}, new () {
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
Log.d(“ListViewFragment”, “onScrollStateChanged()”);
}
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
Log.d(“ListViewFragment”, “onScroll()”);
}
});
很简单。
4、商品详细界面上下滑动头像回到actionbar上
这个效果是小编一直都想实现的,因为技术、时间、能力有限,所以一直没去搞,在网上搜了好多相关的帖子,博客,终于让我找到一个类似的,做了一下改动实现了。
这个技术是CoordinatorLayout+Toolbar+CollapsingAvatarToolbar实现的。实际上support desgin可以实现文字的上下滑动但是没有头像的上下滑动改变大小。CollapsingAvatarToolbar这个组件实现了这一效果,当然并不是小编写的,只是小编改的,但是能改出来小编也已经很高兴了。给大家看一下布局:
android:id=“@+id/main_content”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
android:background=“@color/theme_color”
android:clipToPadding=“true”
android:fitsSystemWindows=“true”>
android:id=“@+id/appbar”
android:layout_width=“match_parent”
android:layout_height=“200dp”
android:theme=“@style/ThemeOverlay.AppCompat.Dark.ActionBar”>
android:id=“@+id/collapsing_toolbar”
android:layout_width=“match_parent”
android:layout_height=“match_parent”
app:contentScrim=“@color/theme_color”
app:layout_scrollFlags=“scroll|exitUntilCollapsed”>
android:id=“@+id/toolbar”
android:layout_width=“match_parent”
android:layout_height=“?attr/actionBarSize”
app:layout_collapseMode=“pin”
app:popupTheme=“@style/ThemeOverlay.AppCompat.Light” />
<
android:id=“@+id/stuff_container”
android:layout_width=“wrap_content”
android:layout_height=“?attr/actionBarSize”
android:orientation=“vertical”>
<
android:id=“@+id/usericon”
android:layout_width=“40dp”
android:layout_height=“40dp”
android:layout_gravity=“center_vertical”
android:src=“@drawable/defaut” />
android:id=“@+id/username” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_gravity=“center_vertical” android:fontFamily=“sans-serif-medium” android:text=“Hankkin” android:textColor=“@android:color/white” android:textSize=“18dp” /> android:layout_width=“match_parent” android:layout_height=“match_parent” android:background=“@color/gray” app:layout_behavior=“@string/appbar_scrolling_view_behavior”> android:padding=“@dimen/small_space” android:orientation=“vertical” android:layout_width=“match_parent” android:layout_height=“wrap_content”> android:gravity=“center_vertical” android:padding=“@dimen/small_space” android:orientation=“horizontal” android:layout_width=“match_parent” android:layout_height=“wrap_content”> < android:id=“@+id/iv_user_head” android:src=“@drawable/defaut” android:layout_width=“35dp” android:layout_height=“35dp” /> android:layout_marginLeft=“@dimen/small_space” android:textSize=“@dimen/normal_textSize” android:text=“Hankkin” android:textColor=“@color/black” android:layout_weight=“1” android:id=“@+id/tv_username” android:layout_width=“wrap_content” android:layout_height=“wrap_content” /> android:textColor=“@color/deep_gray” android:textSize=“@dimen/small_textSize” android:text=“asdas” android:id=“@+id/tv_time” android:layout_width=“wrap_content” android:layout_height=“wrap_content” /> android:layout_marginLeft=“@dimen/small_space” android:textColor=“@color/black” android:textSize=“@dimen/normal_textSize” android:id=“@+id/tv_pro_name” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:text=“二手” /> android:layout_marginLeft=“@dimen/small_space” android:textColor=“@color/black” android:textSize=“@dimen/normal_textSize” android:id=“@+id/tv_pro_desc” android:layout_width=“wrap_content” android:layout_height=“wrap_content” /> android:scaleType=“fitXY” android:id=“@+id/iv_product” android:layout_width=“match_parent” android:layout_height=“300dp” android:background=“@color/deep_gray” /> android:paddingBottom=“@dimen/small_space” android:orientation=“” android:layout_width=“match_parent” android:layout_height=“wrap_content”> android:drawablePadding=“@dimen/tiny_space” android:drawableLeft=“@drawable/location” android:textSize=“@dimen/small_textSize” android:layout_marginTop=“@dimen/small_space” android:layout_marginLeft=“@dimen/middle_space” android:text=“天津理工大学” android:id=“@+id/tv_school” android:layout_weight=“1” android:layout_width=“wrap_content” android:layout_height=“wrap_content” /> android:textSize=“@dimen/small_textSize” android:textColor=“@color/theme_color” android:layout_marginRight=“@dimen/middle_space” android:layout_marginTop=“@dimen/small_space” android:text=“¥” android:id=“@+id/tv_price” android:layout_width=“wrap_content” android:layout_height=“wrap_content” /> android:layout_marginTop=“@dimen/middle_space” android:orientation=“horizontal” android:layout_width=“match_parent” android:layout_height=“64dp”> android:gravity=“center” android:layout_weight=“1” android:layout_width=“match_parent” android:layout_height=“match_parent”> android:src=“@drawable/telephone” android:layout_width=“wrap_content” android:layout_height=“match_parent” /> android:gravity=“center” android:layout_weight=“1” android:layout_width=“match_parent” android:layout_height=“match_parent”> android:src=“@drawable/sms” android:layout_width=“wrap_content” android:layout_height=“match_parent” /> android:gravity=“center” android:layout_weight=“1” android:layout_width=“match_parent” android:layout_height=“match_parent”> android:src=“@drawable/collect” android:layout_width=“wrap_content” android:layout_height=“match_parent” /> 效果就这样: 5、个人资料界面 用法也很简单,我们在布局里面嵌套一个PullToZoomScrollViewEx,而布局的head,content,footer都可以自定义,然后引用进来就可以了。 PullToZoomScrollViewEx scrollView = (PullToZoomScrollViewEx) findViewById(R.id.my_pull_scoll); headView = LayoutInflater.from(this)。inflate(R.layout.profile_head_view, null, false); zoomView = LayoutInflater.from(this)。inflate(R.layout.profile_zoom_view, null, false); contentView = LayoutInflater.from(this)。inflate(R.layout.profile_contect_view, null, false); scrollView.setHeaderView(headView); scrollView.setZoomView(zoomView); scrollView.setScrollContentView(contentView); 某服装厂设计了一款新式夏装,想尽快制作8800件投入市场,服装厂有ab两个制衣间,a车 某服装厂设计了一款新式夏装,想尽快制作8800件投入市场,服装厂有A,B两个制衣车间,A车间每天加工的数量是B车间的1.2倍,A,B两车间共同完成一半后,A车间出现故障停产,剩下全部由B车间单独完成,结果前后共用20天完成,求A,B两车间每天分别能加工多少件? 参加答案 A 384件,B 320件。 设A厂每天加工a件,则B厂每天加工1.2a件,共同加工b天,则B完成剩下一半用了20-b天,由题意可得 (1.2a+a)×b=4400……① a(20-b)=4400……② 联立①②式可解得a=320件,b=6天。即A厂每天加工1.2a=384件,B厂每天加工320件。 (计算结果取整数,因为件数和天数都是整的) 《电磁继电器》创新式教学设计 [教学目标] 1.知道电磁继电器的构造和工作原理。 2.培养学生的科学创造能力和动手能力。 [教学过程] 一、创设情境,提出问题。 1.复习电磁铁的构造和工作原理。 2.教师出示两幅挂图。一幅图上内容为一高压电路,提出问题1:如何实现人在低电压下操作高压电路?另一幅图上为几种恶劣的工作环境,如高温的炼钢车间,有放射性危害的工作室(如医院的X光室),有毒气体的化工车间,噪声很大的纺织车间等。提出问题2:如何实现在舒适安全的房间里去控制恶劣环境里的用电器?由此引入到本节课的学习。 二、观察实验,解决问题。 1.电磁继电器的构造。 (1)引导学生观察实验用的电磁继电器,配合挂图认识它的各个部件及作用。找出哪些部件是活动的,哪些部件是固定了的。 (2)给电磁继电器通电,使学生清楚的看到通电和断电时,衔铁的运动及触点的闭合和断开情况。 (3)请学生说出电磁继电器的核心部件和实质,理解电磁继电器实质上是一个由电磁铁控制的开关。 2.电磁继电器的工作原理。 (1)运用挂图分析电磁继电器的工作过程。 ①指出电磁铁所在的电路中的电源是低压电源。 ②请学生说出通电和断电时电磁铁将怎样工作,包括衔铁和弹簧怎样运动,触点如何运动,工作电路的通断情况。 (2)从结构上把电磁继电器划分为控制电路和工作电路两大部分,使学生明白它们各由哪些部分组成和各自的作用。 3.演示实验:用电磁继电器控制电路。 (1)将课本中图11—17的工作电路中的电动机改为小灯泡并组成实验电路,引导学生观察:电磁继电器有几个接线柱,哪些接控制电路,哪些接工作电路,哪。是控制电路,哪是工作电路? (2)演示继电器的工作情况,引导学生先观察控制电路通电和断电时触点闭合和断开的情况,然后观察工作电路小灯泡的亮灭情况, 4.电磁继电器的作用。 (1)指出实际工作中,当工作电路是对人体有危险的高压电路或恶劣环境中的用电器时,利用电磁继电器可以实现用低电压,弱电流控制高电压,强电流,还可实现远距离操作。 (2)出示各种自动控制开关和挂图,据图介绍各种自动控制方式的工作原理 及实际应用。如温度控制、光自动控制等。 三、想想议议,拓宽思路。 1.请学生分析讨论课后习题中的防汛报警器、水位自动报警器、温度自动报警器的工作原理。并引导学生认识继电器触点的几种类型。 2.设计一个控制电路,要求是控制电路工作时,工作电路中的灯泡熄灭,控制电路断开时,灯泡反而工作? 3.设计一个控制电路实现对两灯泡的交替控制。 1 1 4.请学生展开思维,自己设计一个利用电磁继电器实现对某个电路控制的原理图。学生说出自己的设计的作用,然后教师适时的加以评论。 四、播放录像,巩固知识。 1.通过播放“电磁继电器”的录像,一方面使学生形象的了解电磁继电器的各项用途,另一方面巩固了本节课所学知识。 2.介绍实际的电磁继电器,在使用时必须使控制电路中的电源电压与继电器上标称值一致,继电器才能正常工作。 说明 本节课是前面已学电磁铁知识的运用,通过本节课的学习要使学生明白,这些应用都是人们认识了电流的磁效应后发明创造的,说明理论知识在生产实践中的重要作用。在本节课的教学中,通过实物演示与挂图相结合使学生理解电磁继电器的原理是教学的关键。只有在理解的基础上,学生才能对不同的由电磁继电器控制的电路作出解释。对于控制电路的设计是本节课的高潮,教师引导学生充分发挥自己的想象力,设计出一个个有趣的控制工作电路运行的方案,以调动学生的积极性,培养学生的创造力。 教学后记 2 某服装厂设计了一款新式夏装 (2012•黄冈)某服装厂设计了一款新式夏装,想尽快制作8800件投入市场,服装厂有AB两个制衣间,A车间每天加工的数量是B车间的1.2倍,A、B两车间共完成一半后,A车间出现故障停产,剩下全部由B车间单独完成,结果前后共用了20天完成,求A、B两车间每天分别能加工多少件. (2012•黄冈)某服装厂设计了一款新式夏装,想尽快制作8800件投入市场,服装厂有AB两个制衣间,A车间每天加工的数量是B车间的1.2倍,A、B两车间共完成一半后,A车间出现故障停产,剩下全部由B车间单独完成,结果前后共用了20天完成,求A、B两车间每天分别能加工多少件. 回答 A 384件,B 320件。 设A厂每天加工a件,则B厂每天加工1.2a件,共同加工b天,则B完成剩下一半用了20-b天,由题意可得 (1.2a+a)×b=4400……① a(20-b)=4400……② 联立①②式可解得a=320件,b=6天。即A厂每天加工1.2a=384件,B厂每天加工320件。 (计算结果取整数,因为件数和天数都是整的) 服装厂设计部工作职责服装厂设计部工作职责,服装厂服装企业设计部(技术部)工作职责! 。(1)技术资料管理主要有订单资料、样衣、工艺单、样板、排料图、产品标准工序等与大货生产相关的技术资料,其中工艺单、样板、排料图的电子文件也要进行管理。样衣及技术资料的出借归还要有记录。。 (2)技术科收到业务部发过来的打样通知单和客户资料后,先进行打样单登记,根据款式图、客户样衣、客供资料填写打样面辅料需货单(包括可代用的面辅料),如果仓库中没有现存的打样用面辅料,则开样衣打样面辅料缺货单,通知供销科在限定时间内采购完成。 。(3)面辅料准备齐全后,技术科计划员安排打样工作计划,包括制板、裁剪到打样车间的人员、完成日期进行安排,确保按计划完成打样交期。样衣完成后及时交给业务员寄给客户确认。并记录本次打样面辅料的实际耗用数量。。 (4)技术科收到业务部发过来的大货生产订单后,计划员要制定技术准备计划,技术准备计划内容包括批板样确认结果、面料单耗完成时间、辅料单耗完成时间、样板完成时间、工艺完成时间、排料图完成时间、工序工分表完成时间。由面料计划员编制大货计划用料单、工艺制单员编制辅料购置清单,打板工按确认样做样板,并编制样板制单,服装厂由电脑操作员把样片通过数字化仪转换成电脑打板的衣片,要确保所有样片在电脑中都已有数据,通过放码获取所有尺码的衣片,并与裁剪车间一起制定套排方案,保证排料结果最省料、裁剪效率最高。排料图经技术科长审核后,在绘图仪上输出唛架图交给裁剪车间安排裁剪。 。(5)服装厂工艺员编制工艺单,工艺单经审核后通知各生产车间的收发员来签名后领取。如工艺单要修改,要确保所有的工艺单都修改,对修改过的工艺单要有记录。 。(6)工艺员还要编制款式的工序工分表。工艺员对每道工序的划分要合理,对每一道各序的工分计算要准确、公平、全面地反映操作工的作业时间。如因考虑欠周,工分与实际操作工时不符时,应及时予以修正。 。(7)打样使用面辅料的规则:有客户提供原辅料的使用客供品,有客户特殊要求(原辅料制作工艺、花色或材料上)的依据客户的要求处理,其他的必须优先考虑已核销成本的原辅料,已核销成本的原辅料不能满足要求的则可以使用大货库存的原辅料。 。(8)基于对评价客户的需要(从样衣角度):上ERP后中增加了对客户打样的历史记录分析。分析某客户在某段时间内的样衣制作总成本,下单情况,样衣技术难度,客户档次评价等等。也可以横向比较不同客户样衣制作的差异,从而为业务员或决策层提供客户打样方面的信息某服装厂设计了一款新式夏装(小编推荐 篇2
《电磁继电器》创新式教学设计要点 篇3
某服装厂设计了一款新式夏装(推荐 篇4
服装厂设计部工作职责 篇5