自定义ImageView回调实现手动改变圆环大小
//-----------------自定义MyView继承Imageview-------------------------------
package com.bw.yuanhuan;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.media.JetPlayer;
import android.util.AttributeSet;
import android.widget.ImageView;
public class MyView extends ImageView{
private float cx=150;//x轴坐标
private float cy=150;//Y轴坐标
private float radius;//半径
private int ku;//宽
private Paint paint;//画笔
private Paint paint1;//画笔1
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
//创建一个画笔
paint = new Paint();
//画笔颜色
paint.setColor(Color.WHITE);
//创建一个画笔
paint1 = new Paint();
//画笔颜色
paint1.setColor(Color.GREEN);
}
//实现onDraw方法
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
if (jiekou!=null) {
radius=jiekou.ban();
ku=jiekou.kuan();
}
//绿色 画布画圆
canvas.drawCircle(cx, cy, radius+ku, paint1);
//白色 画布画圆
canvas.drawCircle(cx, cy, radius, paint);
//刷新
invalidate();
}
//声明接口
private JieKou jiekou;
//创建一个接口
public interface JieKou{
int ban();
int kuan();
}
public void diaoyou(JieKou jiekou){
this.jiekou=jiekou;
}
}
//-----------------------Xml布局文件----------------------------------------------
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout android:layout_width="fill_parent"
android:layout_height="40dp"
android:orientation="horizontal">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="半径:"
/>
<EditText
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/et_banjing"/>
</LinearLayout>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="40dp"
android:orientation="horizontal">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="宽度:"
/>
<EditText android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/et_kuandu"/>
</LinearLayout>
<Button android:layout_width="fill_parent"
android:layout_height="40dp"
android:text="换"
android:id="@+id/bt_button"/>
<com.bw.yuanhuan.MyView
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:id="@+id/myView"/>
</LinearLayout>
//------------------MainActivity 中----------------------------------
package com.bw.yuanhuan;
import com.bw.yuanhuan.MyView.JieKou;
import android.R.integer;
import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity implements OnClickListener {
private EditText et_banjing;
private EditText et_kuandu;
private Button bt_button;
private MyView myView;
private String banjing;
private String kuandu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到控件EditText
et_banjing = (EditText) findViewById(R.id.et_banjing);
et_kuandu = (EditText) findViewById(R.id.et_kuandu);
//找到空件
bt_button = (Button) findViewById(R.id.bt_button);
//设置监听事件
bt_button.setOnClickListener(this);
//找到自定义view
myView = (MyView) findViewById(R.id.myView);
}
//点击事件的方法
@Override
public void onClick(View v) {
//获得输入的值
banjing = et_banjing.getText().toString().trim();
kuandu = et_kuandu.getText().toString().trim();
//调用myView中的接口方法
myView.diaoyou(new JieKou() {
//宽
@Override
public int kuan() {
//返回int类型的值
return Integer.parseInt(kuandu);
}
//高
@Override
public int ban() {
//返回int类型的值
return Integer.parseInt(banjing);
}
});
}
}
自定义ImageView回调实现手动改变圆环大小的更多相关文章
- C#手动改变自制窗体的大小
Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data ...
- 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果
首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.) 搜狐客户端 ...
- (一)自定义ImageView,初步实现多点触控、自由缩放
真心佩服那些一直专注于技术共享的大神们,正是因为他们无私的分享精神,我才能每天都有进步.近日又算是仔细学了android的自定义控件技术,跟着大神的脚步实现了一个自定义的ImageView.里面涉及到 ...
- CSS手动改变DIV高宽
本实例代码可以使DIV可以手动改变大小 效果体验:http://hovertree.com/code/css/resize.htm 代码如下: <!DOCTYPE html> <ht ...
- Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示
Android中的ImageView只能显示矩形的图片,为了用户体验更多,Android实现圆角矩形,圆形或者椭圆等图形,一般通过自定义ImageView来实现,首先获取到图片的Bitmap,然后通过 ...
- [译]GLUT教程 - 改变窗体大小
Lighthouse3d.com >> GLUT Tutorial >> Basics >> Resizing the Window 上一章的例子创建了两个窗体,命 ...
- JavaScript动画-拖拽改变元素大小
▓▓▓▓▓▓ 大致介绍 拖拽改变元素大小是在模拟拖拽上增加了一些功能 效果:拖拽改变元素大小 ▓▓▓▓▓▓ 拖拽改变元素大小原理 首先这个方块得知道我们想要改变这个它的大小,所以我给它设定一个范围,当 ...
- javascript动画系列第四篇——拖拽改变元素大小
× 目录 [1]原理简介 [2]范围圈定 [3]大小改变[4]代码优化 前面的话 拖拽可以让元素移动,也可以改变元素大小.本文将详细介绍拖拽改变元素大小的效果实现 原理简介 拖拽让元素移动,是改变定位 ...
- WPF实现无边框窗体拖拽右下角▲ 改变窗体大小【framwork4.0】 谢谢大家关注
效果图:(右下角拖拽改变窗体大小) 第一步:添加xaml代码: <Border Name="ResizeBottomRight" MouseMove="Resize ...
随机推荐
- 【C】 02 - 程序结构和预处理
在正式进入C的语法之前,有必要对其整体外观和组成元素作一个浏览.这部分内容对大多数人是比较陌生的,但它们却是C的起点和骨架.而这些内容涉及的背景或细节又可以展开为专门的课题,这里也只是浅尝则止,说明个 ...
- 在 Windows上配置NativeScript CLI
1.安装Node.js,到https://nodejs.org/下载安装 2.安装Chocolatey,https://chocolatey.org/,先看一下关于chocolatey的介绍: 安装方 ...
- 把自己主要在做的几个工程都传到了GitHub上
GitHub链接 https://github.com/MichaelSuen-thePointer 里面有4个项目,一个是我的C大程大作业,一个3600+行的字典程序,已经弃坑不再更新 还有一个叫w ...
- CRM HomePage.aspx
//added by bgx on 20160616 //隐藏指定title按钮 function hideISVButton(buttonTitle) { var comps = document. ...
- Linux Install VirtualBox
添加源: cd /etc/yum.repos.dwget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo 下面3个 ...
- No.1__C#
这是第一篇C#的日记,到现在为止已经学习了一个礼拜的C#了.由于是实习中才开始学习,所以这次不准备像在大学学习那样,拿着课本划重点,背概念.这应当是一门实践的课程,应该一边编程,一边学.这是到公司第一 ...
- DestroyWindow函数注意事项
最近遇到这样一个问题:将一个窗口句柄以参数的形式传递给一个线程,在线程中使用完之后要将窗口销毁,调用DestroyWindow销毁窗口是返回false,GetLastError的结果为5:拒绝访问,而 ...
- AX 2012 query应用collections
QueryBuildRange range; super(); this.query().dataSourceName('VendTop10VendorsByPurchase').clearDynal ...
- Tomcat 常用配置
1.Tomcat 管理员设置 想要进入Tomcat管理界面: 打开Tomcat 目录 :进入 Conf目录,找到tomcat-users.xml文件,打开 修改 tomcat-users 节, 2.T ...
- Distributed Transaction Coordinator 无法启动
有时候我们需要进行COM应用程序的权限设置,控制面板-->管理工具-->组件服务-->然后依此展开:组件服务-->计算机-->我的电脑-->DCOM 配置,接下来找 ...