| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android记录9--实现转盘效果,app架构设计 -> 正文阅读 |
|
[移动开发]Android记录9--实现转盘效果,app架构设计 |
<com.wwj.turnplate.TurnPlateView android:id="@+id/turnplate" android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_centerInParent=“true” /> <Button android:id="@+id/btnStart" android:layout_width=“70dp” android:layout_height=“wrap_content” android:layout_alignParentBottom=“true” android:layout_alignParentLeft=“true” android:text=“开始” /> <Button android:id="@+id/btnStop" android:layout_width=“70dp” android:layout_height=“wrap_content” android:layout_alignParentBottom=“true” android:layout_alignParentRight=“true” android:text=“结束” /> 自定义View /2013.10.16_TurnPlate_Demo/src/com/wwj/turnplate/TurnPlateView.java package com.wwj.turnplate; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.util.AttributeSet; import android.view.View; public class TurnPlateView extends View implements Runnable{ // 界面需要的图片 private Bitmap turnPlatePic; // 转盘图片 private Bitmap pointerPic; // 指针图片 // 旋转矩阵 private Matrix panRotate = new Matrix(); // 平移矩阵 private Matrix pointerTranslate = new Matrix(); private int x = 0; private boolean ifRoate = false; public TurnPlateView(Context context, AttributeSet attrs) { super(context, attrs); Resources r = context.getResources(); // 生成图片 turnPlatePic = BitmapFactory.decodeStream(r.openRawResource(R.drawable.turnplate)); pointerPic = BitmapFactory.decodeStream(r.openRawResource(R.drawable.pointer)); // 用线程刷新界面 Thread thread = new Thread(this); thread.start(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.translate(75, 100); canvas.drawBitmap(turnPlatePic, panRotate, null); canvas.translate(turnPlatePic.getWidth() / 2 - pointerPic.getWidth() / 2, 20); canvas.rotate(x, pointerPic.getWidth() / 2,point
erPic.getHeight() - 35); canvas.drawBitmap(pointerPic, pointerTranslate, null); } @Override public void run() { try { while(true) { if (ifRoate) { this.x += 25; //这个函数强制UI线程刷新界面 this.postInvalidate(); Thread.sleep(50); } } } catch(InterruptedException e) { e.printStackTrace(); } } public void startRoate() { this.ifRoate = true; } public void stopRotate() { this.ifRoate = false; } } 主Activity package com.wwj.turnplate; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity implements OnClickListener{ private TurnPlateView plateView; |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:42:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |