全部 文章 问答 分享 共找到32个相关内容
[文章] 吐槽系列-2022苹果春季发布会
背景一直在等苹果发布LCD的新品,终于等到了~SE最后一次小屏版本苹果发布了se2022.4.7LCD,电池我猜测2200,绝了,就算a15这个电池也是不够用的,放弃购买。
2022-03-09 11:02 · iPhone / 吐槽 / 苹果发布会
[问答] 仿美团APP案例
毕业设计自选了一个仿美团的外卖类APP但是没上几节Android课,页面设计好了但是不会写代码。求一个能运行的案例研究研究。有推荐的课程最好。可付费
2020-12-01 13:51 · Android
[文章] 2022年苹果教育商店各种商品优惠多少呢?
2022年苹果教育商店各种商品优惠多少呢?有什么卖?购买条件是啥?与普通购买便宜多少?有什么卖?
2022-07-13 20:50 · mac / apple / 苹果电脑 / 教育优惠 / 价格
[文章] 自定义控件之SlideMenu-仿QQ侧滑功能菜单
前言之前跟着康师傅学习Android开发自定义控件系列课程时(B站:视频传送门【阳光沙滩】2020安卓开发自定义控件基础课程)写了一个SlideMenuView的自定义控件,仿QQ消息列表的侧滑功能。
[问答] 在导入方法时会自动创建两个NonNull
使用工具为idea2020.2,正在进行安卓仿喜马拉雅的项目。
2020-09-13 17:14 · 工具
[文章] Android 使用Gallery仿3D画廊效果实现
getSupportActionBar()).setDisplayShowTitleEnabled(false);ActivityUtils.addToolbarTitle(this,mToolbar,"仿3D
2020-08-17 20:42 · Gallery / Android / 画廊效果
[文章] ios swift 项目创建和配置
背景最近阳光沙滩app安卓端已经做了一个小闭环,奈何自己一直用苹果手机📱,日常比较少带安卓手机,这样严重影响我摸鱼(学习先进摸鱼技术),今天突然立下牌坊,我要写一个ios阳光沙滩摸鱼客户端🐶,不知道能不能搞出来啊
2021-10-10 16:01 · ios / swift
[文章] 25000字总结Android优秀的第三方框架、各种学习资料(上)
Githubtransferee可以帮助你完成从缩略图到原图的无缝过渡转变,功能体系仿照并涵盖ios版本的QQ、微信朋友圈、新浪微博的图片浏览功能Github类似微博微信显示图片的九宫格控件Github仿Nice
2020-05-18 19:56 · android
[问答] docker安装solr失败。
我用的是苹果电脑,在docker安装solr的时候说我没权限,应该怎么弄?
2021-02-03 17:37 · docker / solr
[分享] 仿网易云app
挺具体的什么内容都有
2022-07-05 15:26 · android
[文章] 仿网易云开屏动画
1.效果图这是原版效果:下面是仿制的效果2.实现分析开屏动画里面有一个向上滑动的箭头,引导用户去广告页,主要是一个平移动画和透明度变化,基本元素是一个箭头,不断从底下弹出,到达某个位置后消失。所以我们要实现的是一个自定义的ViewGroup,这里我们选择RelativeLayout代码实现packagecom.ttyh.customviewimportandroid.animation.Animatorimportandroid.animation.AnimatorListenerAdapterimportandroid.animation.AnimatorSetimportandroid.animation.ObjectAnimatorimportandroid.annotation.SuppressLintimportandroid.content.Contextimportandroid.graphics.drawable.Drawableimportandroid.os.Handlerimportandroid.os.Looperimportandroid.util.AttributeSetimportandroid.view.GestureDetectorimportandroid.view.MotionEventimportandroid.view.Viewimportandroid.view.ViewGroupimportandroid.view.animation.LinearInterpolatorimportandroid.widget.ImageViewimportandroid.widget.RelativeLayoutimportandroidx.core.content.res.ResourcesCompatimportcom.ttyh.notificationtest.Rimportjava.util.*/***@authorCreatebyQinBiao*@description:*@create_date:2022/9/2-11:20*@Modified_time:2022/9/2-11:20*/classArrowLayout:RelativeLayout,GestureDetector.OnGestureListener{privatevarparams:ViewGroup.LayoutParams?=nullprivatelateinitvargestureDetector:GestureDetector//处理滑动事件的接口privatevarflingListener:(()->Unit)?=nullprivatevarisInItFlag=falseprivatevaricon=ResourcesCompat.getDrawable(resources,R.drawable.ic_arrow_up,null)//默认箭头图片constructor(context:Context,attrs:AttributeSet):super(context,attrs){background=ResourcesCompat.getDrawable(resources,R.drawable.bg_background,null)//默认背景图片initListener()}/***初始化手势监听器**/privatefuninitListener(){gestureDetector=GestureDetector(context,this)}privatefuninitView(){valwidth=(icon?.intrinsicWidth?.div(4))?:0valheight=icon?.intrinsicHeight?.div(4)?:0//将箭头imageView添加到布局的底部中央位置params=LayoutParams(width,height).apply{addRule(CENTER_HORIZONTAL,TRUE)addRule(ALIGN_PARENT_BOTTOM,TRUE)}isInItFlag=true}//设置背景图片funsetBackGround(mBackground:Drawable){background=mBackground}//设置箭头funsetIcon(drawable:Drawable){icon=drawable}privatefunaddArrowView(){//如果没有初始化过箭头图片的位置,初始化if(!isInItFlag){initView()}valiv=ImageView(context).apply{layoutParams=paramssetImageDrawable(icon)}//添加箭头图片的Imageview到布局中addView(iv)//开启动画valalphaOne=ObjectAnimator.ofFloat(iv,"alpha",0.3f,1f,0.7f)alphaOne.interpolator=LinearInterpolator()valtranslateOne=ObjectAnimator.ofFloat(iv,"translationY",0f,-200f)translateOne.interpolator=LinearInterpolator()valanimatorSet=AnimatorSet().apply{play(translateOne).with(alphaOne)duration=1500}animatorSet.start()//动画监听animatorSet.addListener(object:AnimatorListenerAdapter(){overridefunonAnimationEnd(animation:Animator?){super.onAnimationEnd(animation)iv.visibility=View.GONEremoveView(iv)//移除箭头}overridefunonAnimationRepeat(animation:Animator?){super.onAnimationRepeat(animation)}overridefunonAnimationStart(animation:Animator?){super.onAnimationStart(animation)}})}/*@params:duration多长时间间隔发射一个箭头*/funsetArrowDuration(duration:Long){vallooper=Looper.getMainLooper()valhandler=Handler(looper)valtimer=Timer()valtask=object:TimerTask(){overridefunrun(){handler.postDelayed({addArrowView()},0)}}timer.schedule(task,0,duration)}overridefunonInterceptTouchEvent(ev:MotionEvent?):Boolean{returntrue}overridefunonDown(e:MotionEvent?):Boolean{returntrue}overridefunonShowPress(e:MotionEvent?){}overridefunonSingleTapUp(e:MotionEvent?):Boolean{returnfalse}overridefunonScroll(e1:MotionEvent?,e2:MotionEvent?,distanceX:Float,distanceY:Float):Boolean{returnfalse}overridefunonLongPress(e:MotionEvent?){}overridefunonFling(e1:MotionEvent?,e2:MotionEvent?,velocityX:Float,velocityY:Float):Boolean{flingListener?.invoke()returnfalse}@SuppressLint("ClickableViewAccessibility")overridefunonTouchEvent(event:MotionEvent?):Boolean{returngestureDetector.onTouchEvent(event)}}4.使用<?xmlversion="1.0"encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context="com.ttyh.animator.AdActivity"><com.ttyh.customview.ArrowLayoutandroid:id="@+id/ad"android:layout_width="match_parent"android:layout_height="match_parent"/></androidx.constraintlayout.widget.ConstraintLayout>在Activity或者Fragment中开启动画classAdActivity:AppCompatActivity(){privatelateinitvarbinding:ActivityAdBindingoverridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)binding=ActivityAdBinding.inflate(layoutInflater)//设置弹射箭头的时间间隔,并且开始动画binding.ad.setArrowDuration(500)setContentView(binding.root)}}实现拦截手势的接口binding.ad.flingListener={//拦截滑动手势后,要做的事,比如说启动淘宝、京东}5期间遇到的问题自定义view时,无法拦截到手势的滑动手势,只能拦截到短按、长按等手势,解决方法:在实现手势拦截方法时,重写onDown(e:MotionEvent?):Boolean方法,表示消费掉该手势,然后就能拦截到滑动手势了
2022-09-02 19:25 · android / 自定义view / 动画
[文章] Flutter领券联盟分享
如果需要release的话,应该需要一个苹果开发者账号吧,我现在没有账号,后续也无法测试。现在还没法体验到ios真机的release,后面看看情况再算吧。
2020-07-19 00:04 · Android / flutter
[文章] 仿断点沙滩APP用户详情下拉功能
其实应该不是很困难大家都知道是AppBarLayout+CollapsingToolbarLayout+Toolbar进行UI控制的主要想写篇文章记录下效果且排下坑不是最优解是土办法来着有大佬有新写法可以指导下有问题可以sob联系dd1.关于图片(头像)一直无法跟随文字一起显示在toolbar这点进行了多次尝试1)将imgview放置在toolbar中发现无法控制它的位置(无法居中处理)因为toolbar内没有提供位置的一些方法所以无疾而终2)放在了toolbar同级也是感觉没啥用没办法跟随文本一起隐藏(这里是坑)3)放在appbar内与CollapsingToolbarLayout同级会出现拉扯不符合该方案(放弃)在咨询断点大佬后他说他是采用2)可是我自己的没办法跟随隐藏或显示我就不断去查看所写的属性心想来个大破大立将我原先写的CollapsingToolbarLayout内的属性先隐藏掉在动态填入背景就好了巧了删除了2)方案就能和断点大佬的效果一样imgview能跟随文本在toolbar中了大家可以猜猜是啥属性卖关子(其实就一个属性是限制了因为它操作后又被赋值了个背景所以imgview跟随不了toolbarapp:contentScrim="@drawable/userinfo_bg"神坑其实只要解决这个问题其他问题就不是很大了)因为toolbar自身会移动只要解决imgview移动就好了(百分比计算然后移动就好了并不困难(os感谢断点大佬点拨哈哈哈哈)因为没做view大小变化这个留给下个有缘人探索下先贴贴xml代码(自行删减)<?xmlversion="1.0"encoding="utf-8"?><androidx.coordinatorlayout.widget.CoordinatorLayoutandroid:layout_width="match_parent"xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"android:orientation="vertical"android:layout_height="match_parent"><com.google.android.material.appbar.AppBarLayoutandroid:id="@+id/app_bar"android:layout_width="match_parent"android:layout_height="wrap_content"><com.google.android.material.appbar.CollapsingToolbarLayoutandroid:id="@+id/ctl_test"android:layout_width="match_parent"android:layout_height="wrap_content"app:expandedTitleGravity="center"app:collapsedTitleGravity="left"app:layout_scrollFlags="scroll|exitUntilCollapsed"><!--app:contentScrim="@drawable/userinfo_bg"--><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/rl_top"><ImageViewandroid:layout_width="match_parent"android:layout_height="@dimen/dp_220"android:id="@+id/iv_user_bg"android:background="@drawable/userinfo_bg"android:scaleType="centerCrop"/><includelayout="@layout/layout_title"android:id="@+id/ll_user_title"android:visibility="invisible"/><de.hdodenhof.circleimageview.CircleImageViewandroid:padding="@dimen/dp_5"android:layout_width="@dimen/dp_80"android:layout_height="@dimen/dp_80"android:layout_below="@+id/iv_user_bg"android:layout_marginTop="-40dp"android:visibility="gone"android:layout_marginLeft="@dimen/dp_20"/><includeandroid:id="@+id/ic_user_fansorfollow"layout="@layout/layout_info_fof"android:layout_below="@+id/tv_user_position"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"app:layout_collapseMode="parallax"/></RelativeLayout><de.hdodenhof.circleimageview.CircleImageViewandroid:layout_width="@dimen/dp_50"android:layout_height="@dimen/dp_50"android:background="@drawable/emoji_2"android:layout_gravity="center"android:layout_marginTop="-50dp"app:layout_collapseMode="pin"android:layout_marginBottom="@dimen/dp_5"android:id="@+id/iv_user_avatar"/><androidx.appcompat.widget.Toolbarandroid:layout_width="match_parent"android:layout_height="@dimen/dp_80"app:layout_collapseMode="pin"app:titleTextColor="@color/white"android:id="@+id/toolbar"/></com.google.android.material.appbar.CollapsingToolbarLayout></com.google.android.material.appbar.AppBarLayout><androidx.viewpager.widget.ViewPagerandroid:id="@+id/vp_user"android:layout_width="match_parent"android:layout_below="@+id/ic_user_fansorfollow"android:layout_marginTop="@dimen/dp_5"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior">//这一句是很重要的提供关联上面的指示器(应该是这么叫吧)<com.google.android.material.tabs.TabLayoutandroid:id="@+id/tab_user"android:layout_width="match_parent"android:layout_height="wrap_content"app:tabGravity="fill"app:tabIndicatorColor="@color/index_blue"app:tabIndicatorFullWidth="false"app:tabIndicatorHeight="1dp"app:tabMode="fixed"app:tabSelectedTextColor="@color/bottom_navigation_item_bg_color"app:tabTextColor="@color/index_black"/></androidx.viewpager.widget.ViewPager><androidx.recyclerview.widget.RecyclerViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/rc_uinfo"android:visibility="gone"<!--可以拿这个先测试-->/></androidx.coordinatorlayout.widget.CoordinatorLayout>java代码只能给一部分相关的内容了因为这不是demo没办法copy运行想实践的可以运行看看privateFragmentUserinfoNewBindingbinding=null;privateUserInfoPresentermPresenter;privateString[]titles=newString[]{"动态","文章"/*,"问答"*/,"关注","粉丝"};privateList<String>mStrings=newArrayList<>();privateList<Fragment>fragments=newArrayList<>();privateStringuserId;privateVpAdaptervpAdapter;@Nullable@OverridepublicViewonCreateView(@NonNullLayoutInflaterinflater,@NullableViewGroupcontainer,@NullableBundlesavedInstanceState){binding=FragmentUserinfoNewBinding.inflate(inflater,container,false);initData();initView();returnbinding.getRoot();}privateintappbarHeight=0;//整块高度privateinttoolbarHeight=0;//缩略后高度privateintivAvatarHeight=0;//头像宽高privatefloativAvatarX;//所在X轴privatevoidinitView(){vpAdapter=newVpAdapter(getChildFragmentManager(),fragments,getContext(),mStrings);appbarHeight=UiUtils.dp2px(getActivity(),220f);toolbarHeight=UiUtils.dp2px(getActivity(),80f);ViewGroup.LayoutParamslayoutParams1=binding.ivUserAvatar.getLayoutParams();ivAvatarHeight=layoutParams1.width;binding.toolbar.setTitleMarginStart(ivAvatarHeight+5);ivAvatarX=UiUtils.getWidth(getContext())/2-ivAvatarHeight/2-5;//所在的X轴//绘制背景Glide.with(getActivity()).load(R.drawable.userinfo_bg).transform(newBlurTransformation(5,1))//高斯模糊第三方库.into(binding.ivUserBg);binding.vpUser.setAdapter(vpAdapter);binding.tabUser.setupWithViewPager(binding.vpUser);//title文章binding.icUserFansorfollow.tvArtNum.setOnClickListener(v->binding.vpUser.setCurrentItem(1));//title关注binding.icUserFansorfollow.tvFollow.setOnClickListener(v->binding.vpUser.setCurrentItem(2));//title粉丝binding.icUserFansorfollow.tvFans.setOnClickListener(v->binding.vpUser.setCurrentItem(3));binding.llUserTitle.ivTtFinish.setOnClickListener(v->getActivity().finish());//设置展开前后的UIbinding.ctlTest.setExpandedTitleColor(ContextCompat.getColor(getContext(),R.color.white));binding.ctlTest.setCollapsedTitleTextColor(ContextCompat.getColor(getContext(),R.color.white));intstatusBarHeight=UIStatusBarUtils.getStatusBarHeight(getActivity());//获取状态栏高度RelativeLayoutrl_title=binding.llUserTitle.getRoot();RelativeLayout.LayoutParamslayoutParams=(RelativeLayout.LayoutParams)rl_title.getLayoutParams();layoutParams.topMargin=statusBarHeight;//设置状态栏高度}privatevoidinitData(){mPresenter=newUserInfoPresenter(this);userId=getActivity().getIntent().getStringExtra(Constance.S_DATA);StringuuserId=getArguments().getString(Constance.S_DATA);/*TODOtestif(!uuserId.equals(SpUtils.getInstance().getString(Constance.SP_UID,""))){binding.btnIsfans.setVisibility(View.GONE);}*/mPresenter.getOtherUserAchievement(uuserId);mPresenter.getUserInfo(uuserId);//添加fragmentfragments.add(newMoyuFragment(uuserId,true));fragments.add(newArticleFragment(uuserId,true));//fragments.add(newQandAFragment());fragments.add(newFansUserFragment(userId,2));//关注fragments.add(newFansUserFragment(uuserId,1));//粉丝//添加标题mStrings.clear();for(inti=0;i<titles.length;i++){mStrings.add(titles[i]);}binding.appBar.addOnOffsetChangedListener(newAppBarLayout.OnOffsetChangedListener(){@OverridepublicvoidonOffsetChanged(AppBarLayoutappBarLayout,intverticalOffset){floatpercentage=Math.abs((float)verticalOffset/(float)(appbarHeight-toolbarHeight));binding.ivUserAvatar.setTranslationX(-ivAvatarX*percentage);//移动位置if(percentage>0.5){//控制其他空间隐藏binding.icUserFansorfollow.llFansorfollow.setVisibility(View.GONE);}else{binding.icUserFansorfollow.llFansorfollow.setVisibility(View.VISIBLE);}}});@OverridepublicvoidonGetUserInfo(UserInfouserInfo){if(userInfo.isSuccess()){UserInfo.DataBeandata=userInfo.getData();UiUtils.isVipImageView(getActivity(),data.isVip(),binding.ivUserAvatar,data.getAvatar());Stringcover=data.getCover();//背景if(!TextUtils.isEmpty(cover)){Glide.with(getActivity()).load(cover).transform(newBlurTransformation(5,1)).into(binding.ivUserBg);}//填入在toolbar是因为可以动态设置外边距binding.toolbar.setTitle(data.getNickname());binding.tvUserPosition.setText(position.toString());}}各位大佬嘴上留情有其他思路也可以评论一起学(指导)习(我)
2022-08-05 11:48 · 下拉效果 / 仿断点APP
[分享] 仿喜马拉雅/美团分类的实现
ViewPager+GridView实现美团/饿了么这些应用的分类,比如说宵夜呀,外卖,彩妆之类的。详情请阅读文章吧。
2019-11-18 17:27 · 美团 / 饿了么 / 分类 / 轮播图 / 安卓
[文章] Swift快速入门常量和变量(2)
语言特性Swift可以说是一门较新的语言,苹果于2014年[WWDC]苹果开发者大会发布。
2020-09-14 22:53 · Swift
[文章] Flutter领券联盟-搭建环境,创建项目
如果你插入自己的苹果手机,上面也能识别出来,直接打到手机上面就好了。基本流程大概就是这样,到了这里,项目就运行起来了。后面就开始创建首页简单的Tab
2020-07-26 10:37 · flutter / Android / 学习
[文章] 买电脑时,你应该了解的CPU知识!
苹果公司自2010年开始研发并推出自家设计的芯片,用于iPhone和iPad等移动设备,并在之后扩展到Mac产品线。
2024-02-19 11:57 · CPU / 组装机 / 电脑 / pc / 芯片
[文章] 阳光沙滩APP - 实现查看文章
------那就仿个掘金吧。
2021-12-15 00:32 · 菜鸡的毕设
[问答] 【提问】关于仿微信位置共享功能的实现

在学习android studio的过程中,想开发一个类似于微信多人位置共享的app,目前想到的实现方法时这样的:

简单说就是:

客户端1把自己的位置信息上传到服务器的数据库中

客户端2读取服务器数据库中客户端1的位置信息,并同时上传自己的位置信息

多个客户端就这样读取和上传

但我想这样可能不会有很好的时效性,毕竟一直在读取数据库中的内容,各位大佬有什么好的建议吗,谢谢大家!

2022-09-20 20:01 · Android
[文章] Android自定义控件的分类
自定义ViewGrop前面我们定义了ViewGroup是用于管理子View的,我也们举一些例子看看:最美丽应用的琴键仿微信的九宫格这个是我们后面要学习的例子以上这些都是自定义ViewGroup,管理着子
2019-11-02 19:18 · 自定义控件 / 安卓开发 / view / viewGroup / android
[文章] Android tv开发02强制聚焦到某个控件
layout_margin="5dp"android:background="@drawable/btn_selector"android:text="苹果
2021-09-05 10:51 · TV / Android
[文章] 阳光沙滩移动端发布会
基本上抽一点点时间出来写,因为没有开发经验,开始的时候寸步难行,各种不顺心,但是随着熟悉,也开始有点感觉了,要赶上api发布一周年时间,就草草提交了一个版本,苹果审核很折磨人的,我已经被折磨了半个月了,
[文章] 25000字总结Android优秀的第三方框架、各种学习资料(下) Camera、Video、指纹、聊天IM、投屏等
Router一款简单的Android端用于Activity跳转的路由框架实现仿Retrofit的跳转路由可能是目前最简单、灵活的路由框架Floo开源了,一个支持AOP、栈控制、跨页面带信、和动态变更映射的
2020-08-06 09:32 · android / 第三方框架
[文章] UIKit快速入门之开发环境搭建(1)
storyboard是苹果推出的可视化编辑界面,通过拖拽的方式进行页面布局,并可以进行兼容适配。5)Assets.xcassets项目的资源文件,一般放在这里。
2020-09-27 21:27 · UIKit / Xcode
[文章] [毕业设计]一个带后端的影音播放app
然后在gitee上找到了一个开源的仿网易云播放框架。接口部分用的是网络公开的接口。
2022-08-05 16:09 · 毕业设计 / 音乐 / 电影 / Android / vue / SpringBoot
[文章] 零基础—iOS版“淘宝联盟”开发计划(一)
开发设备:iMac编程语言:Swift开发平台:Xcode11.3调试设备:iPhone8模拟器前言:仿【大锯哥】的Android版“淘宝联盟”,做一个swift版“淘宝联盟”。
2020-09-16 00:36 · 淘宝联盟 / swift / iOS
[文章] Android 开发过程中截图分享功能实现
cardview_compat_inset_shadow"android:maxLines="2"android:padding="6dp"android:text="Apple/苹果
2022-08-16 23:08 · Android / 安卓 / kotlin / 截图分享卡片 / Kotlin
[文章] 31、Android开发基础之内容提容者ContentProvider
所以,接下来我们就要仿今日头条,仿腾讯QQ,微信这些应用获取到手机号码,也就是通讯录的内容。获取到通讯录的电话号码有些时候,我们的应用为了推广,所以希望把用户的通讯录手机号码拿到,自动向他推荐好友。
[文章] 自定义控件之QQ附近的人雷达扫描效果
前言之前跟着康师傅学习Android开发自定义控件系列课程时看到笔记Android自定义控件的分类里有这么一个效果,如下图然后我通过搜索引擎搜到了这篇文章(Android超高仿QQ附近的人搜索展示),根据这篇文章我对源码进行了重构
[文章] 泛型程序设计
EgenericMethodS(Ee){returne;}}/**普通类中的泛型方法*/classOrdinaryClass{public<T>voidsayHello(){Ta;//...}}下面以苹果为例
2020-09-21 18:35 · java
  • 1
  • 2