-
Gallery相册浏览
该代码是一款简单的画廊式相册浏览功能,代码就一个类,可以轻松的拷贝到自己的项目中,也可以很好的进行完善,修改简单。
- 2022-01-29 01:27:39下载
- 积分:1
-
安卓即时通信源码(支持文字 语音聊天)
应用背景允许在因特网或局域网内的用户进行语音交流.你所需要的只是麦克和声卡.与其它因特网语音通讯软件不同,它对参与会话的人数没有限制(这取决于你的带宽),并且,语音延迟极小,因此能获得较好的沟通效果.英文界面.关键技术该IM软件适合中小型企业用户,支持单聊和群聊,提供文字、表情和图片的富文本实时聊天功能,支持多平台客户端同时登陆,以及各平台之间消息的同步推送。实属国产良心之作,github主页https://github.com/mogutt,官网http://tt.mogu.io/试用帐号javaapk.com 密码sdasda。
- 2022-04-22 19:21:07下载
- 积分:1
-
3D绘图安卓程序
在surfaceView绘图程序中,必须另外建立一个thread来连续调用我们的draw方法。但是3D绘图程序是由系统自动连续运行我们建立的onDrawFrame()方法,因此不需要自己建立thread运行绘图工作。3D绘图程序必须换成使用GLSurfaceView类,并且实现GLSurfaceView.Renderer界面。
- 2023-07-14 12:45:03下载
- 积分:1
-
ContactsManager
Java源码下载,Android 联系人管理模块的代码,可读取联系人、修改、删除联系人,如何连接手机通讯录,如何获取头像列表,如何区分是存储在手机或是SIM卡中,对于Android的应用来说,联系人管理比较典型,但比较重要,源代码中的注释很丰富,这也是大家值得参阅本源码的一大原因(Java source code download, code Android contact management module, you can read contacts, modify, delete contacts, how to connect the phone book, How to Get Picture list, how to distinguish is stored in the phone or SIM card for the Android applications, contact management more typical, but more importantly, the comments in the source code is very rich, and this is all worth refer to the source of a major cause of)
- 2014-04-16 09:24:01下载
- 积分:1
-
android 仿微信浏览相册图片例子源码下载
[实例简介] 仿微信浏览相册图片, 相册浏览 [实例截图] [核心代码]import java.io.File;import java.io.FilenameFilter;import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.List;import android.app.Activity;import android.app.ProgressDialog;import android.content.ContentResolver;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.os.Environment;import android.os.Handler;import android.provider.MediaStore;import android.util.DisplayMetrics;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.view.WindowManager;import android.widget.GridView;import android.widget.PopupWindow.OnDismissListener;import android.widget.RelativeLayout;import android.widget.TextView;import android.widget.Toast;import com.zhy.bean.ImageFloder;import com.zhy.imageloader.ListImageDirPopupWindow.OnImageDirSelected;public class MainActivity extends Activity implements OnImageDirSelected{ private ProgressDialog mProgressDialog; /** * 存储文件夹中的图片数量 */ private int mPicsSize; /** * 图片数量最多的文件夹 */ private File mImgDir; /** * 所有的图片 */ private List mImgs; private GridView mGirdView; private MyAdapter mAdapter; /** * 临时的辅助类,用于防止同一个文件夹的多次扫描 */ private HashSet mDirPaths = new HashSet(); /** * 扫描拿到所有的图片文件夹 */ private List mImageFloders = new ArrayList(); private RelativeLayout mBottomLy; private TextView mChooseDir; private TextView mImageCount; int totalCount = 0; private int mScreenHeight; private ListImageDirPopupWindow mListImageDirPopupWindow; private Handler mHandler = new Handler() { public void handleMessage(android.os.Message msg) { mProgressDialog.dismiss(); // 为View绑定数据 data2View(); // 初始化展示文件夹的popupWindw initListDirPopupWindw(); } }; /** * 为View绑定数据 */ private void data2View() { if (mImgDir == null) { Toast.makeText(getApplicationContext(), "擦,一张图片没扫描到", Toast.LENGTH_SHORT).show(); return; } mImgs = Arrays.asList(mImgDir.list()); /** * 可以看到文件夹的路径和图片的路径分开保存,极大的减少了内存的消耗; */ mAdapter = new MyAdapter(getApplicationContext(), mImgs, R.layout.grid_item, mImgDir.getAbsolutePath()); mGirdView.setAdapter(mAdapter); mImageCount.setText(totalCount "张"); }; /** * 初始化展示文件夹的popupWindw */ private void initListDirPopupWindw() { mListImageDirPopupWindow = new ListImageDirPopupWindow( LayoutParams.MATCH_PARENT, (int) (mScreenHeight * 0.7), mImageFloders, LayoutInflater.from(getApplicationContext()) .inflate(R.layout.list_dir, null)); mListImageDirPopupWindow.setOnDismissListener(new OnDismissListener() { @Override public void onDismiss() { // 设置背景颜色变暗 WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = 1.0f; getWindow().setAttributes(lp); } }); // 设置选择文件夹的回调 mListImageDirPopupWindow.setOnImageDirSelected(this); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); DisplayMetrics outMetrics = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(outMetrics); mScreenHeight = outMetrics.heightPixels; initView(); getImages(); initEvent(); } /** * 利用ContentProvider扫描手机中的图片,此方法在运行在子线程中 完成图片的扫描,最终获得jpg最多的那个文件夹 */ private void getImages() { if (!Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { Toast.makeText(this, "暂无外部存储", Toast.LENGTH_SHORT).show(); return; } // 显示进度条 mProgressDialog = ProgressDialog.show(this, null, "正在加载..."); new Thread(new Runnable() { @Override public void run() { String firstImage = null; Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; ContentResolver mContentResolver = MainActivity.this .getContentResolver(); // 只查询jpeg和png的图片 Cursor mCursor = mContentResolver.query(mImageUri, null, MediaStore.Images.Media.MIME_TYPE "=? or " MediaStore.Images.Media.MIME_TYPE "=?", new String[] { "image/jpeg", "image/png" }, MediaStore.Images.Media.DATE_MODIFIED); Log.e("TAG", mCursor.getCount() ""); while (mCursor.moveToNext()) { // 获取图片的路径 String path = mCursor.getString(mCursor .getColumnIndex(MediaStore.Images.Media.DATA)); Log.e("TAG", path); // 拿到第一张图片的路径 if (firstImage == null) firstImage = path; // 获取该图片的父路径名 File parentFile = new File(path).getParentFile(); if (parentFile == null) continue; String dirPath = parentFile.getAbsolutePath(); ImageFloder imageFloder = null; // 利用一个HashSet防止多次扫描同一个文件夹(不加这个判断,图片多起来还是相当恐怖的~~) if (mDirPaths.contains(dirPath)) { continue; } else { mDirPaths.add(dirPath); // 初始化imageFloder imageFloder = new ImageFloder(); imageFloder.setDir(dirPath); imageFloder.setFirstImagePath(path); } int picSize = parentFile.list(new FilenameFilter() { @Override public boolean accept(File dir, String filename) { if (filename.endsWith(".jpg") || filename.endsWith(".png") || filename.endsWith(".jpeg")) return true; return false; } }).length; totalCount = picSize; imageFloder.setCount(picSize); mImageFloders.add(imageFloder); if (picSize > mPicsSize) { mPicsSize = picSize; mImgDir = parentFile; } } mCursor.close(); // 扫描完成,辅助的HashSet也就可以释放内存了 mDirPaths = null; // 通知Handler扫描图片完成 mHandler.sendEmptyMessage(0x110); } }).start(); } /** * 初始化View */ private void initView() { mGirdView = (GridView) findViewById(R.id.id_gridView); mChooseDir = (TextView) findViewById(R.id.id_choose_dir); mImageCount = (TextView) findViewById(R.id.id_total_count); mBottomLy = (RelativeLayout) findViewById(R.id.id_bottom_ly); } private void initEvent() { /** * 为底部的布局设置点击事件,弹出popupWindow */ mBottomLy.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mListImageDirPopupWindow .setAnimationStyle(R.style.anim_popup_dir); mListImageDirPopupWindow.showAsDropDown(mBottomLy, 0, 0); // 设置背景颜色变暗 WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.alpha = .3f; getWindow().setAttributes(lp); } }); } @Override public void selected(ImageFloder floder) { mImgDir = new File(floder.getDir()); mImgs = Arrays.asList(mImgDir.list(new FilenameFilter() { @Override public boolean accept(File dir, String filename) { if (filename.endsWith(".jpg") || filename.endsWith(".png") || filename.endsWith(".jpeg")) return true; return false; } })); /** * 可以看到文件夹的路径和图片的路径分开保存,极大的减少了内存的消耗; */ mAdapter = new MyAdapter(getApplicationContext(), mImgs, R.layout.grid_item, mImgDir.getAbsolutePath()); mGirdView.setAdapter(mAdapter); // mAdapter.notifyDataSetChanged(); mImageCount.setText(floder.getCount() "张"); mChooseDir.setText(floder.getName()); mListImageDirPopupWindow.dismiss(); }}
- 2015-04-08下载
- 积分:1
-
简易好用的ViewPager指示器
应用背景有自定义ViewPager指示器,以及对指示器动画有连贯过渡需求的用户关键技术自定义ViewPager指示器,自定义属性,使用paint和canvas画出原点,使用动画定制达到阻尼效果
- 2022-01-30 17:16:43下载
- 积分:1
-
Android的快速文件检索
通过递归和Linux底层命令方式实现快速文件检索.可以使查询速度达到秒级.快速的算法调用linux底层..可以使查询速度达到秒级.快速的算法调用linux底层.
- 2022-02-13 20:44:33下载
- 积分:1
-
ADO操作数据库
ADO操作数据库
- 2020-05-04下载
- 积分:1
-
cameraengine.java代码我在网上找到的
应用背景Android应用OCR为languaje照片和图像识别Java类,使用tessreact苔丝两库。代码最初是由F. Aro创造,适应和实现的我没有任何工作意向学校高。关键技术苔丝tessreact两库开发的谷歌,谷歌GitHub的网页下载,Android Studio Android开发者页面和Android SDK下载,使用Java languaje,它是一个Java类代码使用相机的文字识别中的应用。 ;
- 2022-01-22 17:31:42下载
- 积分:1
-
爱奇艺见面ui源码
爱奇艺见面ui源码啊啊啊啊啊啊啊啊 啊啊 啊啊啊啊啊啊 啊啊啊啊啊 啊啊啊啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊啊 啊啊啊啊啊啊啊啊 啊啊啊 a
- 2022-03-20 14:14:24下载
- 积分:1