当前位置: 首页 > news >正文

湛江怎么做网站关键词优化网站开发外包平台

湛江怎么做网站关键词优化,网站开发外包平台,东莞公司网络建设,网站备案后更换主机帝都几日降温#xff0c;终于被撂倒了。but 只要一息尚存就得不断进步#xff01;于是#xff0c;写出 《PopupWindow 使用详解》的第二篇 笔记#xff0c;先奉上 第一篇链接: 《PopupWindow 使用详解#xff08;一#xff09; 中文API 文档 赠送 ListPopupWindow 中文 A… 帝都几日降温终于被撂倒了。but 只要一息尚存就得不断进步于是写出 《PopupWindow 使用详解》的第二篇 笔记先奉上 第一篇链接: 《PopupWindow 使用详解一 中文API 文档 赠送 ListPopupWindow 中文 API》 。下面给大家展示一下制作的效果gif。下面进行一个样式一个样式的肢解哈对了所有效果笔者都没有制作载入动画和退出动画。有需要的小伙伴可以通过 这个方法 public void setAnimationStyle(int animationStyle) 进行设置,也是很简单、很常用的。 效果一、图片选取功能带阴影 1、布局设置 ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:idid/ll_picandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:backgrounddrawable/shape_pic_selectandroid:gravitybottomandroid:orientationverticalLinearLayoutandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginStart5dpandroid:layout_marginEnd5dpandroid:orientationverticalButtonandroid:idid/btn_pic_photoandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginBottom1dpandroid:background#ffffffandroid:text相 册android:textColor#3c3c3candroid:textSize16sp /Buttonandroid:idid/btn_pic_cameraandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginBottom1dpandroid:background#ffffffandroid:text拍 照android:textColor#3c3c3candroid:textSize16sp /Buttonandroid:idid/btn_pic_cancelandroid:layout_widthmatch_parentandroid:layout_heightwrap_contentandroid:layout_marginBottom1dpandroid:background#ffffffandroid:text取 消android:textColor#3c3c3candroid:textSize16sp //LinearLayout /LinearLayout 2、Java 逻辑代码 /*** 照片选择器*/SuppressLint(InflateParams)private void showPicSelect() {view LayoutInflater.from(this).inflate(R.layout.item_pic_select, null, false);LinearLayout llPop view.findViewById(R.id.ll_pic);Button btnCamera view.findViewById(R.id.btn_pic_camera);Button btnPhoto view.findViewById(R.id.btn_pic_photo);Button btnCancel view.findViewById(R.id.btn_pic_cancel);btnCamera.setOnClickListener(this);btnPhoto.setOnClickListener(this);btnCancel.setOnClickListener(this);llPop.setOnClickListener(this);myPop new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);myPop.setBackgroundDrawable(new ColorDrawable());myPop.showAtLocation(rlMain, Gravity.BOTTOM, 0, 0);}Overridepublic void onBackPressed() {if (myPop.isShowing()) {myPop.dismiss();} else {super.onBackPressed();}} 3、实现思路 之前笔者看了看网上百度来的答案实现阴影效果的思路大概是当 PopupWindow 弹出时将 Activity 设置为半透明但是这种思路的弊端是 Activity 透明了你懂得你可以在 A Activity 界面直接看到了 桌面或者是 B Activity 界面的东西很蛋疼。笔者的思路是为 PopupWindow 设置一个半透明的背景色然后监听这不背景 layout 的点击事件和物理键的返回事件。否则会出现点击无效果的现象。具体逻辑如上。 二、仿qq和微信的长按置顶删除功能 1、布局 ?xml version1.0 encodingutf-8? RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentLinearLayoutandroid:idid/ll_qqandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_centerHorizontaltrueandroid:backgrounddrawable/shape_qqandroid:orientationhorizontaltools:ignoreUselessParentTextViewandroid:idid/tv_deleteandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:padding10dpandroid:text删除android:textColor#ffffffandroid:textSize16sp /Viewandroid:layout_width2dpandroid:layout_heightmatch_parentandroid:layout_marginTop5dpandroid:layout_marginBottom5dpandroid:background#666666 /TextViewandroid:idid/tv_be_topandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:padding10dpandroid:text置顶android:textColor#ffffffandroid:textSize16sp //LinearLayoutImageViewandroid:idid/iv_threeandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_belowid/ll_qqandroid:layout_centerHorizontaltrueandroid:backgroundnullandroid:layout_marginTop-5dpandroid:contentDescriptionstring/app_nameandroid:srcmipmap/ic_three / /RelativeLayout 2、Java 逻辑 /*** 仿qq 产生水滴按钮*/SuppressLint(InflateParams)private void showQq() {view LayoutInflater.from(this).inflate(R.layout.item_qq, null, false);TextView tvTop view.findViewById(R.id.tv_be_top);TextView tvDelete view.findViewById(R.id.tv_delete);tvDelete.setOnClickListener(this);tvTop.setOnClickListener(this);myPop new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);myPop.setBackgroundDrawable(new ColorDrawable());myPop.setOutsideTouchable(true);myPop.getContentView().measure(0, 0);myPop.showAsDropDown(cvMain, (cvMain.getWidth() - myPop.getContentView().getMeasuredWidth()) / 2,-(cvMain.getHeight() myPop.getContentView().getMeasuredHeight()));} 3、实现思路 这个其实没什么好说的但是需要注意的两点是1、ui 一定要有的或者是自己会个ps 也行仔细看笔者布局有一个地方设置 margin 属性居然用了 负值 否则无法保证 下面的shape 背景与三角标进行无缝衔接2、注意这个方法一定要设置即便是不设置值 public void setBackgroundDrawable(Drawable background) 否则会导致 public void setOutsideTouchable(boolean touchable) 这个方法不起作用即出现点击 PopupWindow 外部区域无法隐藏 PopupWindow 的尴尬局面 三、实现悬浮图片轮播 1、布局代码 !--布局 1-- ?xml version1.0 encodingutf-8? android.support.v7.widget.CardView xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:background#00000000app:cardCornerRadius10dpandroid.support.v4.view.ViewPagerandroid:idid/vp_popandroid:layout_width200dpandroid:layout_height300dpandroid:background#48BAFF //android.support.v7.widget.CardView!--布局 2-- ?xml version1.0 encodingutf-8? LinearLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthmatch_parentandroid:layout_heightmatch_parentandroid:gravitycenterandroid:orientationverticalImageViewandroid:layout_width200dpandroid:layout_height300dpandroid:contentDescriptionstring/app_nameandroid:srcmipmap/pic_1 / /LinearLayout 2、Java 逻辑代码 /*** 轮播效果*/SuppressLint(InflateParams)private void showPager() {views new ArrayList();view LayoutInflater.from(this).inflate(R.layout.item_pager, null, false);ViewPager vpPop view.findViewById(R.id.vp_pop);picView01 LayoutInflater.from(this).inflate(R.layout.item_pop_vp_01, null, false);picView02 LayoutInflater.from(this).inflate(R.layout.item_pop_vp_02, null, false);picView03 LayoutInflater.from(this).inflate(R.layout.item_pop_vp_03, null, false);picView04 LayoutInflater.from(this).inflate(R.layout.item_pop_vp_04, null, false);views.add(picView01);views.add(picView02);views.add(picView03);views.add(picView04);vpPop.setAdapter(new MyPopAdapter());myPop new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);myPop.setOutsideTouchable(true);//悬浮效果myPop.setElevation(5);myPop.setBackgroundDrawable(new ColorDrawable(0x00ffffff));myPop.showAtLocation(rlMain, Gravity.CENTER, 0, 0);}/*** 配置 adapter*/class MyPopAdapter extends PagerAdapter {Overridepublic int getCount() {return views.size();}Overridepublic boolean isViewFromObject(NonNull View view, NonNull Object o) {return view o;}NonNullOverridepublic Object instantiateItem(NonNull ViewGroup container, int position) {container.addView(views.get(position));return views.get(position);}Overridepublic void destroyItem(NonNull ViewGroup container, int position, NonNull Object object) {container.removeView(views.get(position));}}Overrideprotected void onDestroy() {super.onDestroy();if (views ! null) {views.remove(picView01);views.remove(picView02);views.remove(picView03);views.remove(picView04);}if (myPop.isShowing()) {myPop.dismiss();}} 3、实现思路及注意事项 首先加载图片需要进行相关处理比如说用过Picasso 或者是 Glide 等框架当然了也可将进行自己压缩 其次由于为了突出美观笔者用了一个 CardView 可以设置圆角但是 CardView 的阴影属性失效了为了凸显层次感可以设置 PopupWindow 的这个方法 public void setElevation(float elevation) 该方法可以是你感觉出一种悬浮的效果 最后没用的 view 需要进行清理否则会留在内存哦。 四、向下弹出水滴效果 1、布局源码 ?xml version1.0 encodingutf-8? RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentImageViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignBottomid/iv_beautyandroid:layout_toEndOfid/iv_beautyandroid:srcmipmap/ic_right /ImageViewandroid:idid/iv_beautyandroid:layout_width150dpandroid:layout_height200dpandroid:background#669android:srcmipmap/pic_5 / /RelativeLayout 2、Java 逻辑 /*** 向下弹出*/SuppressLint(InflateParams)private void showDown() {view LayoutInflater.from(this).inflate(R.layout.item_anywhere, null, false);myPop new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);myPop.setBackgroundDrawable(new ColorDrawable());myPop.setOutsideTouchable(true);myPop.getContentView().measure(0, 0);myPop.showAsDropDown(btnPopDown, -((myPop.getContentView().getMeasuredWidth() - btnPopDown.getWidth()) / 2), 0);} 3、注意事项 这个没什么可说的了和 上面 小标题二 相同 具体查看上方即可。 五、实现屏幕右侧向左弹出 1、布局代码 ?xml version1.0 encodingutf-8? RelativeLayout xmlns:androidhttp://schemas.android.com/apk/res/androidandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentImageViewandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:layout_alignBottomid/iv_beautyandroid:layout_toEndOfid/iv_beautyandroid:srcmipmap/ic_right /ImageViewandroid:idid/iv_beautyandroid:layout_width150dpandroid:layout_height200dpandroid:background#669android:srcmipmap/pic_5 / /RelativeLayout 2、Java 逻辑代码 /*** 向左弹出*/SuppressLint(InflateParams)private void showStart() {view LayoutInflater.from(this).inflate(R.layout.item_pop_start, null, false);myPop new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);myPop.setBackgroundDrawable(new ColorDrawable());myPop.setOutsideTouchable(true);myPop.getContentView().measure(0, 0);myPop.showAsDropDown(fabStart, -(myPop.getContentView().getMeasuredWidth()), -(fabStart.getHeight() / 2 myPop.getContentView().getMeasuredHeight()));} 3、注意事项 这里比较复杂的 就是 PopupWindow 的锚点位置 为 其寄生的 控件的 左下角而 Popwindow 的起始点为 左上角但是 PopupWindow 默认不超出界面。这就导致了 PopupWindow 明明在 控件则左侧但是却无法到达自己的想要位置。所以 对于该现象我们只能 在计算偏移量的时候 需要向左 移动 控件长度PopupWindow的长度 其他长度 六、实现需要获取焦点的控件使用 1、布局代码 ?xml version1.0 encodingutf-8? android.support.v7.widget.CardView xmlns:androidhttp://schemas.android.com/apk/res/androidxmlns:apphttp://schemas.android.com/apk/res-autoxmlns:toolshttp://schemas.android.com/toolsandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:background#00000000app:cardCornerRadius10dpRelativeLayoutandroid:layout_widthwrap_contentandroid:layout_heightwrap_contentandroid:background#00000000android:padding10dpTextViewandroid:idid/tv_name_pandroid:layout_widthwrap_contentandroid:layout_height40dpandroid:gravitycenter_verticalandroid:text账户android:textSize16sp /EditTextandroid:layout_width200dpandroid:layout_height40dpandroid:layout_toEndOfid/tv_name_pandroid:backgroundnullandroid:gravitycenter_verticalandroid:inputTypenumberandroid:paddingStart10dpandroid:paddingEnd10dpandroid:singleLinetrueandroid:textSize16sptools:text123 /TextViewandroid:idid/tv_password_pandroid:layout_widthwrap_contentandroid:layout_height40dpandroid:layout_belowid/tv_name_pandroid:gravitycenter_verticalandroid:text密码android:textSize16sp /EditTextandroid:layout_width200dpandroid:layout_height40dpandroid:layout_belowid/tv_name_pandroid:layout_toEndOfid/tv_password_pandroid:backgroundnullandroid:gravitycenter_verticalandroid:inputTypenumberPasswordandroid:paddingStart10dpandroid:paddingEnd10dpandroid:singleLinetrueandroid:textSize16sptools:text123 //RelativeLayout /android.support.v7.widget.CardView 2、逻辑代码 /*** 向右弹出 输入框*/SuppressLint(InflateParams)private void showEnd() {view LayoutInflater.from(this).inflate(R.layout.item_end_input, null, false);myPop new PopupWindow(view, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);myPop.setBackgroundDrawable(new ColorDrawable(0x00ffffff));myPop.setElevation(10);myPop.setOutsideTouchable(true);myPop.setFocusable(true);myPop.getContentView().measure(0, 0);myPop.showAsDropDown(fadEnd, (int) (fadEnd.getWidth() * 1.3), -((fadEnd.getHeight() myPop.getContentView().getMeasuredHeight()) / 2));} 3、注意事项 这里一定要 设置该方法 public void setFocusable(boolean focusable) 否则 在切换EditText 的时候只是光标进行了移动但是 无法召唤软键盘。 七、总结 1、笔者认为上面的大概可以满足比较简单的开发需求了笔者很菜这些已经足可以满足笔者了目前2、关于偏移量这个会涉及导到一些小小的计算和一点点逻辑想法所以不要只是做 cv 战士作为文雅的程序员我们还是需要有点自己的想法的哈3、代码上传 github 地址为PopupWindow4、希望可以帮到你批评和建议望各位大佬留言小生在这里谢过了。
http://www.zqtcl.cn/news/695698/

相关文章:

  • 桂林论坛网站有哪些在线设计平台用户分析
  • wap网站的开发去加网 wordpress
  • 博客网站建设设计论文总结php mysql做网站登录
  • 海南智能网站建设公司wordpress 如何使用php版本号
  • 河南网站开发培训app 软件开发
  • 购物网站功能介绍一流的高密网站建设
  • 电影网站怎么做优化wordpress 去掉w
  • 永久网站空间标书制作员工资很低吗
  • 做网站用到ps么淘宝优惠网站怎么做
  • jsp 淘宝网站验证码 设计搜索引擎排名
  • pdf怎么做电子书下载网站北京成立公司
  • 网站后台附件无法上传阿克苏建设网站
  • 网站和网址有什么不同佛山狮山网站建设
  • 有免费的微网站是什么可以做长图的网站
  • 南昌手机建站模板18种禁用软件黄app
  • 备案的域名做电影网站wordpress伪静态cdn配置
  • 国家城乡住房建设部网站百度关键词首页排名
  • 安卓软件开发需要学什么软件北京百度推广优化公司
  • 用asp.net 做网站wordpress网址缩短
  • 中国工程建设交易信息网站仿蘑菇街wordpress主题
  • 网站需要怎么做做普通网站公司吗
  • 网站收录平台方法网站建设是不是都需要交费
  • 上海 政务网站建设情况营销模式有哪些 新型
  • 国内做免费视频网站有哪些苏州娱乐场所最新消息
  • 福田建设网站宿迁网站建设案例
  • 建立企业网站的目的和意义人力资源外包收费标准
  • 网站开发前后端分离湘潭seo磐石网络
  • 上海做网站找谁京东网站建设分析
  • 叶榭做网站青岛做网站建设价格
  • 有什么可以在线做奥数题的网站中国建设网官网下载