//-----------------自定义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回调实现手动改变圆环大小的更多相关文章

  1. C#手动改变自制窗体的大小

    Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data ...

  2. 自定义ImageView实现图片手势滑动,多点触摸放大缩小效果

    首先呢,还是一贯作风,我们先来看看众多应用中的示例:(这种效果是很常见的,可以说应用的必须品.)                搜狐客户端                               ...

  3. (一)自定义ImageView,初步实现多点触控、自由缩放

    真心佩服那些一直专注于技术共享的大神们,正是因为他们无私的分享精神,我才能每天都有进步.近日又算是仔细学了android的自定义控件技术,跟着大神的脚步实现了一个自定义的ImageView.里面涉及到 ...

  4. CSS手动改变DIV高宽

    本实例代码可以使DIV可以手动改变大小 效果体验:http://hovertree.com/code/css/resize.htm 代码如下: <!DOCTYPE html> <ht ...

  5. Android自定义ImageView实现图片圆形 ,椭圆和矩形圆角显示

    Android中的ImageView只能显示矩形的图片,为了用户体验更多,Android实现圆角矩形,圆形或者椭圆等图形,一般通过自定义ImageView来实现,首先获取到图片的Bitmap,然后通过 ...

  6. [译]GLUT教程 - 改变窗体大小

    Lighthouse3d.com >> GLUT Tutorial >> Basics >> Resizing the Window 上一章的例子创建了两个窗体,命 ...

  7. JavaScript动画-拖拽改变元素大小

    ▓▓▓▓▓▓ 大致介绍 拖拽改变元素大小是在模拟拖拽上增加了一些功能 效果:拖拽改变元素大小 ▓▓▓▓▓▓ 拖拽改变元素大小原理 首先这个方块得知道我们想要改变这个它的大小,所以我给它设定一个范围,当 ...

  8. javascript动画系列第四篇——拖拽改变元素大小

    × 目录 [1]原理简介 [2]范围圈定 [3]大小改变[4]代码优化 前面的话 拖拽可以让元素移动,也可以改变元素大小.本文将详细介绍拖拽改变元素大小的效果实现 原理简介 拖拽让元素移动,是改变定位 ...

  9. WPF实现无边框窗体拖拽右下角▲ 改变窗体大小【framwork4.0】 谢谢大家关注

    效果图:(右下角拖拽改变窗体大小) 第一步:添加xaml代码: <Border Name="ResizeBottomRight" MouseMove="Resize ...

随机推荐

  1. 【C】 02 - 程序结构和预处理

    在正式进入C的语法之前,有必要对其整体外观和组成元素作一个浏览.这部分内容对大多数人是比较陌生的,但它们却是C的起点和骨架.而这些内容涉及的背景或细节又可以展开为专门的课题,这里也只是浅尝则止,说明个 ...

  2. 在 Windows上配置NativeScript CLI

    1.安装Node.js,到https://nodejs.org/下载安装 2.安装Chocolatey,https://chocolatey.org/,先看一下关于chocolatey的介绍: 安装方 ...

  3. 把自己主要在做的几个工程都传到了GitHub上

    GitHub链接 https://github.com/MichaelSuen-thePointer 里面有4个项目,一个是我的C大程大作业,一个3600+行的字典程序,已经弃坑不再更新 还有一个叫w ...

  4. CRM HomePage.aspx

    //added by bgx on 20160616 //隐藏指定title按钮 function hideISVButton(buttonTitle) { var comps = document. ...

  5. Linux Install VirtualBox

    添加源: cd /etc/yum.repos.dwget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo 下面3个 ...

  6. No.1__C#

    这是第一篇C#的日记,到现在为止已经学习了一个礼拜的C#了.由于是实习中才开始学习,所以这次不准备像在大学学习那样,拿着课本划重点,背概念.这应当是一门实践的课程,应该一边编程,一边学.这是到公司第一 ...

  7. DestroyWindow函数注意事项

    最近遇到这样一个问题:将一个窗口句柄以参数的形式传递给一个线程,在线程中使用完之后要将窗口销毁,调用DestroyWindow销毁窗口是返回false,GetLastError的结果为5:拒绝访问,而 ...

  8. AX 2012 query应用collections

    QueryBuildRange range; super(); this.query().dataSourceName('VendTop10VendorsByPurchase').clearDynal ...

  9. Tomcat 常用配置

    1.Tomcat 管理员设置 想要进入Tomcat管理界面: 打开Tomcat 目录 :进入 Conf目录,找到tomcat-users.xml文件,打开 修改 tomcat-users 节, 2.T ...

  10. Distributed Transaction Coordinator 无法启动

    有时候我们需要进行COM应用程序的权限设置,控制面板-->管理工具-->组件服务-->然后依此展开:组件服务-->计算机-->我的电脑-->DCOM 配置,接下来找 ...