Android图形渲染:探索android.graphics包

版权申诉
0 下载量 60 浏览量 更新于2024-09-05 收藏 59KB PDF 举报
"android.graphics包.pdf" 在Android开发中,`android.graphics`包是核心的图形渲染包,提供了丰富的类和接口用于在屏幕上绘制各种图形、图像以及文本。这个包是Android系统绘制的基础,使得开发者能够实现自定义视图、动画以及其他视觉效果。 一、Canvas类 `Canvas`类是Android绘图的核心,它就像是一个画布,允许开发者在其上绘制图形元素。Canvas提供了三个主要的构造方法: 1. `Canvas()`: 创建一个空的Canvas对象,通常用于内存缓冲区的绘制。 2. `Canvas(Bitmap bitmap)`: 使用给定的Bitmap对象创建Canvas,所有的绘制操作都会应用到这个位图上。 3. `Canvas(GL gl)`: 基于OpenGL ES上下文创建Canvas,适用于高性能图形渲染。 Canvas类提供了大量的`draw`开头的方法,例如: - `drawArc(RectF oval, float startAngle, float sweepAngle, boolean useCenter, Paint paint)`: 用于绘制圆弧。 - `drawCircle(float cx, float cy, float radius, Paint paint)`: 用于绘制圆形。 这些方法接受不同的参数,如几何形状的定义、颜色和样式信息(由Paint对象提供)。 二、Paint类 `Paint`类是画笔,控制绘制图形时的颜色、样式、字体等属性。它包含了用于绘制几何形状、文本和位图的设置。Paint类的三个构造方法如下: 1. `Paint()`: 创建一个默认的Paint对象,通常用于初始化。 2. `Paint(int flags)`: 根据指定的标志创建Paint对象,用于控制绘制行为。 3. `Paint(Paint paint)`: 复制另一个Paint对象的所有属性。 Paint类包含了许多方法来设置样式,如: - `setColor(int color)`: 设置绘制颜色。 - `setStyle(Paint.Style style)`: 设置线条或填充的风格,如STROKE(仅线条)、FILL(填充)或FILL_AND_STROKE(同时填充和线条)。 - `setStrokeWidth(float width)`: 设置线条宽度。 - `setTypeface(Typeface typeface)`: 设置文本的字体。 三、其他关键类 除了Canvas和Paint,`android.graphics`包还包括: 1. Bitmap: 代表位图图像,提供了加载、保存、缩放和处理位图的方法。 2. Rect: 用于定义矩形区域,常在绘制时用于裁剪或定位。 3. Path: 表示一个路径,可以组合直线、曲线等形状。 4. ColorFilter: 用于颜色转换和特效,如灰度、饱和度调整等。 5. Typeface: 定义字体样式,用于设置文本的字体、大小和样式。 在实际应用中,开发者通常结合使用Canvas、Paint和其他辅助类,以实现自定义视图、动画、图形用户界面的复杂布局和设计。通过熟练掌握这些类的用法,可以创造出具有独特视觉效果的应用。在后续的学习中,会通过实例来进一步阐述如何有效利用这些工具进行图形绘制。

package com.example.dzy; import android.app.Dialog; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import java.io.InputStream; public class Fragment_1 extends Fragment { private ImageView imageView_1,imageView_2; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_shouye, container, false); imageView_1=(ImageView)view.findViewById(R.id.image_show1); imageView_1.setImageBitmap(bitmap); return view; } Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.show1); bigImageLoader(bitmap); //方法里直接实例化一个imageView不用xml文件,传入bitmap设置图片 private void bigImageLoader(Bitmap bitmap){ final Dialog dialog = new Dialog(getActivity()); ImageView image = new ImageView(getContext()); image.setImageBitmap(bitmap); dialog.setContentView(image); //将dialog周围的白块设置为透明 dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent); //显示 dialog.show(); //点击图片取消 image.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ dialog.cancel(); } }); } }这段代码应如何修改

2023-06-01 上传