登录
首页 » Android » Canvas绘图显示手机旋转角度并计步

Canvas绘图显示手机旋转角度并计步

于 2022-12-06 发布 文件大小:2.57 MB
0 185
下载积分: 2 下载次数: 1

代码说明:

测试计步功能,手机放在口袋中,实时绘制手机旋转角度的数据波形。

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

发表评论

0 个回复

  • 关于android手势的例子
    一个简单的android手势的应用,使用gesture的最基本的用法,这个工程就介绍了一下
    2022-05-29 08:48:37下载
    积分:1
  • Android
    2022-01-26 04:47:16下载
    积分:1
  • 搜索指定文件
    文件加管理,用户可以点击文件夹,使用的是,文件夹管理源码,用户也可以根据需求搜索
    2022-01-28 09:55:05下载
    积分:1
  • dklasiooeppe
    DSADWFDSFDSFDSFSD FDSFSDFSFDSFDSASFSAFDASFDASFDASF ewqfewfdsaf DSAF fdsaf ads FDASFDASFDSAFSAFDASDSADWDSFDSFDSFSD fdsfsdfsfdsfdsasfsafdasfdasf ewqfewfdsaf DSAF fdsaf ads FDASFDASFDSAFDSAFDDASDWFDSSFDSFSD FDSFDSDSFSD FDASFDASFSAFDASFDAWFDSAF EWWFDSAF DSAF fdsaf ads FDASFDASSFDASFDSFSD EWWFDSAF DSAF adsfdsaf ads FDASFDASFDSAFDSAFDSAFDSDSDSFDSFSD FDSFDSFSFDASFSASFSAFDASFDASF ewqfewfdsaf dsa fdsaf ads FDASFDASFDSAFDASAFDASDSADFDSFDSFDSFSD FDSFSDFSFDSFDSFSD ewqfewfdsaf dsa fdsaf ads FDASFDASFDSAFDSAFDSDASSFDASFDSFDSFDSFSD EWQFEDSAF DSAF fdsaf ads FDASFDFSFfdsfsdfsfdsfdsasfsafdasfdasf ewqfewfdsa公司
    2022-11-24 02:55:03下载
    积分:1
  • 基于Android的家庭物联网应用
            基于Android开发客户端,使用J2EE模拟物联网关,通过Andriod平台移动终端为用户提供友好操作界面,对家用电器及家具安防设施进行智能远程监视与控制。移动终端主要功能有:1、 空调控制器:空调控制器主要功能是发起开启、关闭空调设备,调节空调温度,以及显示空调当前设置温度。 2、 热水器控制器:热水器控制器主要功能是发起开启、关闭热水器设
    2023-06-18 14:25:07下载
    积分:1
  • 加入回收和数据库显示数据
    应用背景此应用程序将向您展示如何使用recyclerview从数据库中检索数据,在列表中显示。这也表明热使用卡片布局随着片段recyclerview或者我应该说在标签。大部分人患有片段和recyclerview问题可能是这个应用程序将帮助你。关键技术应用程序是基于Android技术的使用appcompat那些想要建立和编译的应用程序在KitKat版本像软糖。这个程序使用了appcompat因此在Jellybean版本的外观和棒棒糖和奇巧的感觉。请把您的SDK更新到最新的,即,它包括棒棒糖的API,使用这些API为应用程序兼容性和使用recyclerview在装箱清单列表视图。
    2022-04-15 03:06:27下载
    积分:1
  • MediaPlayerDemo
    Android播放器源代码,源代码模式(Android.mk)编译,支持USB播放,需要手动输入视频文件的路径。(Android mediaplayer source code.)
    2017-01-09 19:55:28下载
    积分: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
  • 界面间传递参数
    在当前activity中设置一个按钮,按下此按钮,跳转到另一个activity中,并在此过程中传递参数;另一个activity中设置按钮,当按下按钮时,可以将从此界面中获得的数据传递到第一个activity中。
    2022-08-25 10:12:39下载
    积分:1
  • MyApplication2
    说明:  悬浮窗效果,无论应用处于前台还是后台,都会显示。(Suspension window effect, whether the application is in the foreground or background, will be displayed.)
    2020-06-20 05:20:02下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载