首页 > 代码库 > Canvas Path 绘制柱体

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 绘制柱体