登录
首页 » Android » Android源码:仿微信朋友圈发图片一次上传多张图片效果

Android源码:仿微信朋友圈发图片一次上传多张图片效果

于 2022-02-15 发布 文件大小:780.59 kB
0 173
下载积分: 2 下载次数: 1

代码说明:

Android源码:仿微信朋友圈发图片一次上传多张图片效果,可预览显示图片,可选择相册,手机上的图片选择和电脑端的有些区别,自从微信上使用了这种方式后,好像很多人都以微信为标准了,都在借鉴微信上传图片、选择图片的方式,毕竟真的挺好用,这个Android源码,同样是模仿的功能。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 安卓应用小APP
    一个安卓手机上的小App,随手记,关于记录衣食住行的,是Android开发入门的比较好的小项目。
    2022-07-16 20:15:48下载
    积分:1
  • android gif图片实现
    android 中实现gif图片的效果展示,代码不错大家下下!                                                                                                               
    2023-07-15 05:30:03下载
    积分:1
  • H264Android_CPP
    H264解码器源码,移植ffmpeg中的H264解码部分到Android,深度删减优化,在模拟器(320x480)中验证通过。 程序的采用jni架构。界面部分,文件读取,视频显示都是用java做的,底层的视频解码用C来做满足速度的要求。 在这个版本中,从H264码流中分割出Nal是在java层做的,这样在java层直接调用解码时就知道是否有显示视频,缺点的就是耦合度/封装性差一点。 如果采用在底层做Nal分割的方法,可以封装得好看一些,但是每次送的数据有限制,如果送的数据太多,底层可能会一次解码出好几帧视频,但是通知到界面层只能显示一帧,造成丢帧的现象。 如果每次送的数据较少,就会有很多次底层调用没有进行实质解码,很小气的做法,比如有一压缩数据帧需要600字节,如果一次送100个字节给解码器,那么要送6次才会进行实质解码,因为每个数据帧有大有小,所以只能取极小值才不会导致丢帧。 不过所有的编码解码都是各种因素平衡折中的结果,具体用什么方法具体分析。 如果程序崩溃退出,优先考虑: 1)是否是baseline 2)byte [] NalBuf = new byte[40980] 缓冲区是否溢出。 如果有B帧,那肯定不是baseline。 (H264 Decoder C++ version decode source)
    2012-06-01 19:18:23下载
    积分:1
  • Androidprogress
    基于android的进度条进行各种设计,样例的教学说明,很实用(Android progress bar with a variety of design, sample teaching instructions, very useful)
    2012-03-08 22:28:11下载
    积分:1
  • android语音合成demo
    android语音合成demo,非常强大,将demo目录里面的音频文件拷贝到手机SDcard中
    2022-01-26 05:48:53下载
    积分:1
  • AndroidContentAssist
    Content Assist Processor for Android XML files.
    2013-10-12 16:52:03下载
    积分:1
  • How to make splash
    说明:  制作Android开机Splash.img镜像文件(Making an Android boot Splash.img image file)
    2020-06-23 12:40:01下载
    积分:1
  • android open gl 示例代码下载
    [实例简介]Open GL 入门级示例 [实例截图] [核心代码]package com.china.gltry;import javax.microedition.khronos.egl.EGL10;import javax.microedition.khronos.egl.EGL11;import javax.microedition.khronos.egl.EGLConfig;import javax.microedition.khronos.egl.EGLContext;import javax.microedition.khronos.egl.EGLDisplay;import javax.microedition.khronos.egl.EGLSurface;import javax.microedition.khronos.opengles.GL;import android.view.SurfaceHolder;/** * An EGL helper class. */public class EGLHelper{ public EGLHelper() { } /** * Initialize EGL for a given configuration spec. * @param configSpec */ public void start(int[] configSpec){ /* * Get an EGL instance */ mEgl = (EGL10) EGLContext.getEGL(); /* * Get to the default display. */ mEglDisplay = mEgl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY); /* * We can now initialize EGL for that display */ int[] version = new int[2]; mEgl.eglInitialize(mEglDisplay, version); EGLConfig[] configs = new EGLConfig[1]; int[] num_config = new int[1]; mEgl.eglChooseConfig(mEglDisplay, configSpec, configs, 1, num_config); mEglConfig = configs[0]; /* * Create an OpenGL ES context. This must be done only once, an * OpenGL context is a somewhat heavy object. */ mEglContext = mEgl.eglCreateContext(mEglDisplay, mEglConfig, EGL10.EGL_NO_CONTEXT, null); mEglSurface = null; } /* * Create and return an OpenGL surface */ public GL createSurface(SurfaceHolder holder) { /* * The window size has changed, so we need to create a new * surface. */ if (mEglSurface != null) { /* * Unbind and destroy the old EGL surface, if * there is one. */ mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); mEgl.eglDestroySurface(mEglDisplay, mEglSurface); } /* * Create an EGL surface we can render into. */ mEglSurface = mEgl.eglCreateWindowSurface(mEglDisplay, mEglConfig, holder, null); /* * Before we can issue GL commands, we need to make sure * the context is current and bound to a surface. */ mEgl.eglMakeCurrent(mEglDisplay, mEglSurface, mEglSurface, mEglContext); GL gl = mEglContext.getGL(); return gl; } /** * Display the current render surface. * @return false if the context has been lost. */ public boolean swap() { mEgl.eglSwapBuffers(mEglDisplay, mEglSurface); /* * Always check for EGL_CONTEXT_LOST, which means the context * and all associated data were lost (For instance because * the device went to sleep). We need to sleep until we * get a new surface. */ return mEgl.eglGetError() != EGL11.EGL_CONTEXT_LOST; } public void finish() { if (mEglSurface != null) { mEgl.eglMakeCurrent(mEglDisplay, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_SURFACE, EGL10.EGL_NO_CONTEXT); mEgl.eglDestroySurface(mEglDisplay, mEglSurface); mEglSurface = null; } if (mEglContext != null) { mEgl.eglDestroyContext(mEglDisplay, mEglContext); mEglContext = null; } if (mEglDisplay != null) { mEgl.eglTerminate(mEglDisplay); mEglDisplay = null; } } EGL10 mEgl; EGLDisplay mEglDisplay; EGLSurface mEglSurface; EGLConfig mEglConfig; EGLContext mEglContext;}
    2015-04-06下载
    积分:1
  • 颜色选择 Android
    这是简单的源代码学习 android 布局,布局中有更多的按钮颜色名称名称颜色按下背景颜色时将自动更改为名称的颜色。快乐学习 android。保持编码,成为一个好的程序员。
    2022-04-22 23:54:52下载
    积分:1
  • 一个简单的手机取证软件
    简单的手机取证软件,可以将联系人、短信等生成表格储存在SD卡中,简单好用
    2022-09-08 17:30:03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载