zoukankan      html  css  js  c++  java
  • 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;
            }
        }
    
    }
  • 相关阅读:
    Arial Monospaced
    也玩有道难题的双立方数问题:Python 版解法
    用 VB.NET 实现的非确定性计算例子
    Gestalt 在浏览器里用 python/ruby 写客户端脚本
    非确定性计算引擎转化为C#版本并重构
    再谈C#的装箱和拆箱
    谈谈.Net 4.0 中的委托delegate
    在C#中使用SqlDbType.Xml类型参数
    java cmd编译class文件
    Mysql、Oracle插表关于主键的处理
  • 原文地址:https://www.cnblogs.com/yshyee/p/4115472.html
Copyright © 2011-2022 走看看