如何获取android canvas 的宽和高
时间: 2024-02-11 15:07:30 浏览: 30
你可以使用以下方法获取`Canvas`对象的宽度和高度:
```java
int width = canvas.getWidth();
int height = canvas.getHeight();
```
这两个方法都会返回一个整数值,分别代表`Canvas`对象的宽度和高度。请注意,这两个方法只能在绘制时调用,否则会抛出异常。如果你需要在绘制之前获取屏幕或视图的宽度和高度,可以使用以下方法:
```java
// 获取屏幕宽度和高度
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth = metrics.widthPixels;
int screenHeight = metrics.heightPixels;
// 获取视图宽度和高度
View view = findViewById(R.id.view);
int viewWidth = view.getWidth();
int viewHeight = view.getHeight();
```
这些方法都可以在`Activity`或`View`中使用,可以根据需要选择适当的方法。
相关问题
android中使用Canvas绘制指定位置和宽高度的图片
在Android中使用Canvas绘制指定位置和宽高度的图片,可以按照以下步骤进行操作:
1. 在你的自定义View的`onDraw`方法中获取Canvas对象:
```
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 获取Canvas对象
...
}
```
2. 创建一个Bitmap对象,将要绘制的图片加载到Bitmap中:
```
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.your_image);
```
3. 使用`canvas.drawBitmap`方法绘制图片,指定位置和宽高度:
```
int left = 100; // 图片的左边距
int top = 100; // 图片的上边距
int width = 200; // 图片的宽度
int height = 200; // 图片的高度
Rect destRect = new Rect(left, top, left + width, top + height);
canvas.drawBitmap(bitmap, null, destRect, null);
```
4. 最后,记得在使用完Bitmap对象后进行回收:
```
bitmap.recycle();
```
这样就完成了在指定位置和宽高度绘制图片的操作。记得将以上代码适配到你的具体项目中。
Android Canvas 画一个宽 90 高20的 圆角椭圆形
好的,以下是画一个宽为90,高为20的圆角椭圆形的代码:
```java
// 创建一个Bitmap对象
Bitmap bitmap = Bitmap.createBitmap(90, 20, Bitmap.Config.ARGB_8888);
// 创建一个Canvas对象
Canvas canvas = new Canvas(bitmap);
// 创建一个Paint对象
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.RED);
// 创建一个RectF对象
RectF rectF = new RectF(0, 0, 90, 20);
// 画圆角矩形
canvas.drawRoundRect(rectF, 10, 10, paint);
```
解释一下代码:
首先,我们创建一个Bitmap对象,并指定宽为90,高为20。然后,我们创建一个Canvas对象,将Bitmap对象传入,这样我们就可以在这个Bitmap上进行绘制了。
接着,我们创建一个Paint对象,并设置抗锯齿和颜色。抗锯齿可以让图形边缘更加平滑,颜色可以根据自己的需求设置。
然后,我们创建一个RectF对象,指定圆角矩形的位置和大小。最后,我们调用Canvas的drawRoundRect方法,传入RectF对象和圆角的大小,即可画出一个圆角矩形。
注意,以上代码只是画出了一个圆角矩形,如果需要把它变成圆角椭圆形,只需要将RectF的高度设置得比宽度小即可。