Canvas Path 绘制柱体
public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
} /**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment { public PlaceholderFragment() {
} ImageView drawingImageView; @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false); drawingImageView = (ImageView)rootView.findViewById(R.id.drawingImageView); int width = (int) getActivity().getWindowManager().getDefaultDisplay().getWidth();
int height = (int)getActivity().getWindowManager().getDefaultDisplay().getHeight(); Bitmap bitmap = Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap);
drawingImageView.setImageBitmap(bitmap); Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GREEN); Path p = new Path();
float offsetX = 30;
float offsetY = 30; //正面
p.moveTo(0.75f, 60f);
p.lineTo(0.75f, 229.1f);
p.lineTo(92.5f, 229.1f);
p.lineTo(92.5f, 60f);
p.lineTo(0.75f, 60f);
canvas.drawPath(p, paint); //右侧面
p.reset();
p.moveTo(92.5f, 60f);
p.lineTo(92.5f, 229.1f);
p.lineTo(92.5f+offsetX, 229.1f-offsetY);
p.lineTo(92.5f+offsetX, 60f-offsetY);
p.lineTo(92.5f, 60f);
canvas.drawPath(p, paint); //上面
p.reset();
p.moveTo(0.75f+offsetX, offsetY);
p.lineTo(0.75f, 60f);
p.lineTo(92.5f, 60f);
p.lineTo(92.5f+offsetX, 60f-offsetY);
p.lineTo(0.75f+offsetX, offsetY);
canvas.drawPath(p, paint); //针对上面,绘制一个白色的菱形强化立体效果
paint.reset();
paint.setStyle(Style.STROKE);
paint.setColor(Color.WHITE); p.reset();
p.moveTo(0.75f+offsetX, offsetY);
p.lineTo(0.75f, 60f);
p.lineTo(92.5f, 60f);
p.lineTo(92.5f+offsetX, 60f-offsetY);
p.lineTo(0.75f+offsetX, offsetY);
canvas.drawPath(p, paint); //针对右侧面,绘制一个白色菱形强化立体效果
p.reset();
p.moveTo(92.5f, 60f);
p.lineTo(92.5f, 229.1f);
p.lineTo(92.5f+offsetX, 229.1f-offsetY);
p.lineTo(92.5f+offsetX, 60f-offsetY);
p.lineTo(92.5f, 60f);
canvas.drawPath(p, paint); return rootView;
}
} }
Canvas Path 绘制柱体的更多相关文章
- 利用Canvas进行绘制XY坐标系
首先来一发图 绘制XY的坐标主要是利用Canvas setLeft和setBottom功能(Canvas内置坐标的功能) 1.首先WPF中的坐标系都是从左到右,从上到下的 即左上角位置(0,0)点,所 ...
- WPF学习笔记(3):Path绘制命令zz
WPF的XAML提供了一系列功能强大.用法复杂的 mini-language 来描述可扩展应用程序标记语言 (XAML) 中的几何路径.如下所示: XAML <Canvas> < ...
- Canvas上绘制几何图形
重要的类自定义View组件要重写View组件的onDraw(Canvase)方法,接下来是在该 Canvas上绘制大量的几何图形,点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形,等各种形状 ...
- Canvas:绘制路径
Canvas:绘制路径 绘制路径 图形的基本元素是路径.路径是[通过不同颜色和宽度的线段或曲线相连形成的不同形状的]点的集合.一个路径,甚至一个子路径,都是闭合的. 使用路径绘制图形需要一些额外的步骤 ...
- 自定义控件之Canvas图形绘制基础练习-青春痘笑脸^_^
对于自定义控件的意义不言而喻,所以对它的深入研究是很有必要的,前些年写过几篇关于UI效果的学习过程,但是中途比较懒一直就停滞了,而对于实际工作还是面试来说系统深入的了解自定义控件那是很有必要的,所以接 ...
- canvas快速绘制圆形、三角形、矩形、多边形
想看前面整理的canvas常用API的同学可以点下面: canvas学习之API整理笔记(一) canvas学习之API整理笔记(二) 本系列文章涉及的所有代码都将上传至:项目代码github地址,喜 ...
- 用html5的canvas画布绘制贝塞尔曲线
查看效果:http://keleyi.com/keleyi/phtml/html5/7.htm 完整代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...
- HTML5在canvas中绘制复杂形状附效果截图
HTML5在canvas中绘制复杂形状附效果截图 一.绘制复杂形状或路径 在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径. beginPath() : 开始绘制一个新路 ...
- Canvas 2D绘制抗锯齿的1px线条
当绘制1像素的线条时,发现多条线明显存在着粗细不均的问题,线条带有明显的锯齿. 事实上,Canvas的绘制线条指令都存在这个状况,如lineTo,arcTo,strokeRect. 解决方案是将Can ...
随机推荐
- 这样就算会了PHP么?-2
学些关于函数FUNCTION方面的东东.. 感觉和PYTHON的APLLY功能差不多.. <?php function come(){ echo "来啦<p>"; ...
- centos下httpd 启动失败的解决办法
[root@csit yang]# service httpd start Starting httpd: [FA ...
- 【No system images installed for this target】的解决方式
打开eclipse,新建安卓SDK模拟器时,选择完Target之后,再选择CPU/ABI时,默认为No system images installed for this target. 且无法编辑: ...
- 自制USB wifi信号放大天线
这是我的usb wifi天线第一个版本,灵感来自: http://www.instructables.com/id/EQARE4I72GEPUCHTHU/ http://www.usbwifi.orc ...
- event.keyCode列表
Keycode对照表 字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 ...
- js如何获取object类型里的键值
最近遇到一个问题: var obj = {"name1":"张三","name2":"李四"}; var key = & ...
- 由mysql数据库基础上的php程序实现单词的查询、删除、更改和查询
我做了一个php程序,将表单数据添加到数据库,借用mysql扩展库函数实现对mysql数据库的操作,能够实现添加单词.删除单词.更新和查询单词.运行环境是普通的mysql数据库和php.Apache服 ...
- [Regular Expressions] Find Repeated Patterns
Regular Expression Quantifiers allow us to identify a repeating sequence of characters of minimum an ...
- HDU 4588 Count The Carries 计算二进制进位总数
点击打开链接 Count The Carries Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java ...
- javascript监听事件兼容
function addEvent(el ,type ,fn){ if(el.addEventListener){ el.addEventListener(type,fn,false); }else ...