根据输入框的值生成圆环效果
来源:互联网 发布:淘宝主机为啥那么便宜 编辑:程序博客网 时间:2024/05/31 19:19
先看布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="圆环的半径:" /> <EditText android:id="@+id/et_rediu" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="圆环的宽度:" /> <EditText android:id="@+id/et_width" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="圆环的颜色:" /> <EditText android:id="@+id/et_color" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout> <Button android:id="@+id/bt_shengcheng" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="生成的圆环展示" /> <com.bwie.test.CircleImageView android:id="@+id/img" android:layout_width="300dp" android:layout_height="300dp" android:layout_gravity="center_horizontal" ></com.bwie.test.CircleImageView> </LinearLayout>再看自定义View上的代码:
package com.bwie.test;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.widget.ImageView;public class CircleImageView extends ImageView{private final Paint paint;private final Context context;private int banjing = 100;private int width = 30;private String color = "#ff0000";public CircleImageView(Context context) {// TODO Auto-generated constructor stubthis(context, null);}public CircleImageView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubthis.context = context;this.paint = new Paint();this.paint.setAntiAlias(true); //消除锯齿this.paint.setStyle(Paint.Style.STROKE); //绘制空心圆 }@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubint center = getWidth()/2;int innerCircle = dip2px(context, banjing); //设置内圆半径int ringWidth = dip2px(context, width); //设置圆环宽度//绘制内圆this.paint.setARGB(255, 212 ,225, 233);this.paint.setStrokeWidth(2);canvas.drawCircle(center,center, innerCircle, this.paint);//绘制圆环this.paint.setColor(Color.parseColor(color));this.paint.setStrokeWidth(ringWidth);canvas.drawCircle(center,center, innerCircle+1+ringWidth/2, this.paint);//绘制外圆this.paint.setARGB(155, 167, 190, 206);this.paint.setStrokeWidth(2);canvas.drawCircle(center,center, innerCircle+ringWidth, this.paint);super.onDraw(canvas);}public void circleChange(int banjing,int width,String color){this.banjing = banjing;this.color = color;this.width = width;postInvalidate();//重新绘制}/** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */public static int dip2px(Context context, float dpValue) {final float scale = context.getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);}}再就是Fragment上的代码:
package com.bwie.fragments;import com.bwie.test.CircleImageView;import com.bwie.test.R;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v4.app.Fragment;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.EditText;import android.widget.ImageView;public class ZidingyiFragment extends Fragment { private EditText rediu;private EditText width;private EditText color;private CircleImageView img;private Button shengcheng;@Overridepublic View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View view=inflater.inflate(R.layout.fra1_zidingyi, null);rediu=(EditText)view.findViewById(R.id.et_rediu);width=(EditText)view.findViewById(R.id.et_width);color=(EditText)view.findViewById(R.id.et_color);img=(CircleImageView)view.findViewById(R.id.img);shengcheng=(Button)view.findViewById(R.id.bt_shengcheng);shengcheng.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String redius=rediu.getText().toString();String widths=width.getText().toString();String colors=color.getText().toString();img.circleChange(Integer.parseInt(redius),Integer.parseInt(widths),colors);}});return view;}}
0 0
- 根据输入框的值生成圆环效果
- 根据输入的月份生成累计工时
- Android画圆环,水波移动的效果
- 根据用户输入的字符串生成3个文件
- 根据输入的数量生成符合EXCEL列标的数组
- PowerDesigner创建表时如何根据输入的Name根据首字母自动生成Code的方法
- # 输入框的抖动效果
- CSS3圆环倒计时效果
- CSS3圆环倒计时效果
- 头像圆环效果
- 根据输入的值进行动态检索
- 根据输入值定义的数组大小
- 实现上传图片时的圆环进度条效果
- canvas绘制圆环百分比进度的动态效果
- cocos2dx 实现圆环的俯视效果,通过资源压缩实现
- 自定义控件,动画效果的进度圆环RingProgressBar
- H5动画,canvas绘制圆环百分比进度的动态效果
- android画多种颜色的圆环带动画效果
- spark Shuffle
- lua 的常用math 函数
- Unity中更改文件夹名
- Objective-C Runtime 运行时之一:类与对象
- setsockopt中参数之SO_REUSEADDR的意义(转)
- 根据输入框的值生成圆环效果
- Java 程序员们值得一看的好书
- base.js很多面向对象的js实现封装
- 10.cocos2d-x文件读写、Json操作
- Untiy射线获取对象
- 生产者消费者模式
- Gulp.js—比Grunt更易用的前端构建工具-前端自动化
- 排序算法—归并排序算法分析与实现(Python)
- orcale union后 排序问题