防微信雷达扫描加好友控件实现
2015-09-15 14:55
666 查看
效果图如下:
RadarView.java
activity:
布局文件:
整理自源代码
RadarView.java
import android.annotation.SuppressLint; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.Paint.Style; import android.graphics.SweepGradient; import android.os.Handler; import android.util.AttributeSet; import android.widget.FrameLayout; public class RadarView extends FrameLayout { private int w, h; private Matrix matrix; private Paint mPaintLine;// 画普通圆和线的画笔 private Paint mPaintSector;// 画有渐变效果的圆的画笔 public boolean isstart = false; private int start; private Handler handler = new Handler(); private Runnable run = new Runnable() { public void run() { // TODO Auto-generated method stub start = start + 1; matrix = new Matrix(); matrix.postRotate(start, w / 2, h / 2); RadarView.this.invalidate(); handler.postDelayed(run, 50); } }; public RadarView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub initPaint(); setBackgroundResource(R.drawable.a1v); w = context.getResources().getDisplayMetrics().widthPixels; h = context.getResources().getDisplayMetrics().heightPixels; handler.post(run); } private void initPaint() { // TODO Auto-generated method stub mPaintLine = new Paint(); mPaintLine.setColor(Color.parseColor("#A1A1A1")); mPaintLine.setStrokeWidth(3); mPaintLine.setAntiAlias(true); mPaintLine.setStyle(Style.STROKE); mPaintSector = new Paint(); mPaintSector.setColor(0x9D00ff00); mPaintSector.setAntiAlias(true); matrix = new Matrix(); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub setMeasuredDimension(w, h); } @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub canvas.drawCircle(w / 2, h / 2, w / 6, mPaintLine);// 小圆 canvas.drawCircle(w / 2, h / 2, 2 * w / 6, mPaintLine);// 中圆 canvas.drawCircle(w / 2, h / 2, 11 * w / 20, mPaintLine); canvas.drawCircle(w / 2, h / 2, 7 * h / 16, mPaintLine);// 大圆 SweepGradient mShader = new SweepGradient(w / 2, h / 2, Color.TRANSPARENT, Color.parseColor("#AAAAAAAA")); mPaintSector.setShader(mShader); canvas.concat(matrix); canvas.drawCircle(w / 2, h / 2, 7 * h / 16, mPaintSector); super.onDraw(canvas); } }
activity:
import android.app.Activity; import android.os.Bundle; import android.view.View; public class CustomerRadarViewActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_customer_radar_view); } public void quit(View v){ finish(); } }
布局文件:
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <com.tz.dream.customer.view.RadarView android:layout_width="fill_parent" android:layout_height="fill_parent" /> <ImageView android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center" android:layout_marginTop="15dp" android:src="@drawable/girl" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom" android:layout_marginBottom="30dp" android:layout_marginLeft="5dp" android:background="@drawable/back_selector" android:paddingBottom="3dp" android:paddingLeft="15dp" android:paddingRight="15dp" android:paddingTop="3dp" android:text="退出" android:textColor="#A1A1A1" android:onClick="quit"/> </FrameLayout>
整理自源代码
相关文章推荐
- 微信公众号支付(三):页面调用微信支付JS并完成支付
- 链接分享到微信之网页被重排及图标不显示的问题
- android 应用实现微信好友或朋友圈分享
- 【JavaScript】微信适配的Head
- 小程序-----统计字符串中数字,中文,空格,字母的个数
- 微信内置浏览器 长按识别二维码 功能的两三个坑与解决方案
- 微信公众平台昵称乱码emoji表情过滤
- 用chrome模拟微信浏览器访问需要OAuth2.0网页授权的页面
- 微信接口封装
- 微信JAVA接入公共类
- 微信开发大坑之数据无法正常存储至数据库
- 微信企业号开发:微信考勤百度地图定位二
- 第一篇 微信商城 开发前的准备工作
- ios 微信浏览器中 触发webkitTransitionEnd 问题
- 微信支付商户平台,企业付款,企业向个人付款接口总结
- php开发微信公众号 第三方平台一键绑定(授权)感言
- 二分法小程序的问题
- 二分法小程序的问题
- C#_微信支付V3
- 3.仿微信--注册界面 补充用到的类