标签: android-canvas

为什么drawPath不工作?

我有drawpath的代码,没有任何显示,我无法弄清楚为什么.

//i move the path's starting point somewhere up here to a point.
//get center x and y are the centers of a picture. it works when i
//do drawline and store the different starting points 
//but i want it to look continuous not like a lot of different
//lines

path.lineTo(a.getCenterX(), a.getCenterY());
path.moveTo(a.getCenterX(), a.getCenterY());


p.setStrokeWidth(50);
p.setColor(Color.BLACK);
canvas.drawPath(path,p);
Run Code Online (Sandbox Code Playgroud)

drawpath图像

提前致谢

android draw android-canvas

2
推荐指数
2
解决办法
7215
查看次数

Canvas 中的 onClickListener

我正在开发一个应用程序,该应用程序以图像作为索引来选择活动将开始的特定图像,但我不知道如何在 Canvas 中设置 onClickListener 或 onTouchListener 这是我的代码

public class DrawView extends View implements OnTouchListener {

LinearLayout mLayout;
Bitmap index;
Bitmap book;
Bitmap bird;
Bitmap game;
Bitmap mail;
Bitmap music;
Bitmap torch;
Paint paint;

public DrawView(Context context) {
    super(context);

    setFocusable(true);
    setFocusableInTouchMode(true);
    this.setOnTouchListener(this);

    index = BitmapFactory.decodeResource(getResources(), R.drawable.photo1);
    book = BitmapFactory.decodeResource(getResources(), R.drawable.book);
    game = BitmapFactory.decodeResource(getResources(), R.drawable.game);
    music = BitmapFactory.decodeResource(getResources(), R.drawable.music);
}

public void onDraw(Canvas canvas){
    paint = new Paint();
    Bitmap indexcanvas = Bitmap.createScaledBitmap(index, canvas.getWidth(),
                                                   canvas.getHeight(), true);
    canvas.drawBitmap(indexcanvas, 0, 0, paint);
    canvas.drawBitmap(book, 160, 100, …
Run Code Online (Sandbox Code Playgroud)

android android-canvas

2
推荐指数
1
解决办法
1万
查看次数

我如何使用canvas.save和canvas.restore?

可能重复:
我可以将大量位图保存到一个位图吗?(2d)的

我想知道canvas.save和canvas.restore是如何工作的.

我希望它如何工作,以及我如何使用它(但不起作用).

  1. 锁定画布
  2. 用unlockandpost做一些绘图
  3. canvas.save()(存储int)
  4. 做一些更多的图纸
  5. 张贴画布
  6. 从第3步恢复画布
  7. 做一些更多的图纸,从6重复(循环)

我真正需要的是在某个阶段(背景)保存我的画布,然后在它上面绘制对象,而不必每次我想要更新我的画布时绘制背景.

java android android-canvas

2
推荐指数
1
解决办法
5497
查看次数

在图像上创建alpha渐变以创建淡入淡出效果

如何在图像上应用alpha渐变以使其呈线性渐变?现在,我正在创建单位宽度的矩形,并使用它来绘制带有绘图对象的位图,其中alpha值在循环中被更改.我只做了它,因为我想不出别的.所以更简洁的方式会更好.

Bitmap bitmap = BitmapFactory.decodeStream(is);
Bitmap bmp = Bitmap.createScaledBitmap(bitmap, 100, 151, true));
bitmap.recycle();

Rect Rect1 = new Rect(0, 0, 100, 100);
Rect Rect2 = new Rect(100, 0, 101, 100);

Paint paint = new Paint();

canvas.drawBitmap(bmp, Rect1, Rect1, null);
while (paint.getAlpha() != 0) {
    paint.setAlpha(paint.getAlpha() - 5);
    canvas.drawBitmap(bmp, Rect2, Rect2, paint);
    Rect2.set(Rect2.left + 1, Rect2.top, Rect2.right + 1, Rect2.bottom);
}
Run Code Online (Sandbox Code Playgroud)

像这样的东西

图片Alpha渐变

PS我正试图为动态壁纸做这个.

android live-wallpaper android-canvas

2
推荐指数
1
解决办法
8725
查看次数

如何在圆弧中绘制一条直线,将中心与圆周连接起来

我有一个自定义视图,我画一个弧.现在我还需要绘制一条连接中心和圆周的线,并且应该恰好位于弧的中间.

现在我知道android画布中绘制线的代码非常简单

但它不涉及角度,弧总是使用角度来绘制自己.

所以我可以在与弧相同的方向画线吗?

我清楚这里还是需要解释更多?

请帮忙.

android android-canvas

2
推荐指数
1
解决办法
1905
查看次数

将位图重新调整为更小的位图

我有一个位图列表。我想要的是获取这些位图,并在画布的帮助下,从我拥有的位图列表中创建一个带有缩小图像的新位图(意思是,使它们非常小)。

我已经设法做到了,但是由于缩小了图像,图像看起来很糟糕。我尝试了很多东西,设置,创建新画布等。

简单的第一个解决方案看起来像这样(下面的代码),但是,正如我所说,图像看起来很糟糕。

public static Bitmap folderBitmap(Bitmap bitmap[]) {

    Bitmap b = Bitmap.createBitmap(100, 100, Bitmap.Config.RGB_565);
    Canvas c = new Canvas(b);

    c.drawARGB(255, 255, 255, 255);

    Paint paint = new Paint();
    paint.setAntiAlias(false);
    paint.setFilterBitmap(false);
    paint.setDither(true);

    c.drawBitmap(getBit(bitmap), 4, 4, paint);
    c.drawBitmap(getBit(bitmap), 35, 4, paint);
    c.drawBitmap(getBit(bitmap), 67, 4, paint);

    c.drawBitmap(getBit(bitmap), 4, 35, null);
    c.drawBitmap(getBit(bitmap), 35, 35, null);
    c.drawBitmap(getBit(bitmap), 67, 35, null);

    c.drawBitmap(getBit(bitmap), 4, 67, null);
    c.drawBitmap(getBit(bitmap), 35, 67, null);
    c.drawBitmap(getBit(bitmap), 67, 67, null);

    return b;
}

private static Bitmap getBit(Bitmap[] b) {
    Bitmap newBitmap = …
Run Code Online (Sandbox Code Playgroud)

android bitmap android-canvas

2
推荐指数
1
解决办法
4657
查看次数

android canvas绘制文本部分

在画布上是否可以绘制文本但不显示其中的一半(好像它部分绘制在画布之外,但实际上并未离开画布)。我在带有一些文本的“图形”上有一个指示器,它遵循这一点,但我不希望将文本从图形部分中绘制出来(我正在绘制该区域之外的其他内容)。

我在画布后面的布局上也有一个背景,所以我不能只用位图绘画,因为这会导致一些纵横比/大小问题(看起来不太好)。


我试过在谷歌、堆栈溢出和实验中寻找答案,但无济于事。在谷歌上,我发现了很多关于在 android 画布上绘制文本的有趣的事情,但没有我想要的东西,我很困惑,我开始认为我想要的东西甚至不可能,我可能需要绘制文本自定义积分或找出看起来同样好的替代方案。

android drawtext android-canvas

2
推荐指数
1
解决办法
1119
查看次数

自定义形状(圆角正方形)可绘制的android

我想要自定义形状边框,如下所示:

在此处输入图片说明

这是我迄今为止尝试过的:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00000000"/>
    <stroke android:width="0.1dp" android:color="#FFFFFF" />
    <corners android:radius="5dp"/>
    <!--<padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp" />-->
</shape>
Run Code Online (Sandbox Code Playgroud)

但这并没有给我弯曲的侧面,只有弯曲的角落。

我需要弯曲的侧面

android xml-drawable android-canvas android-drawable android-shapedrawable

2
推荐指数
1
解决办法
6173
查看次数

如何在Android中平滑画布绘制?

Canvas用于在我的 Android 应用程序中绘图。但结果质量很差(见图)结果

缩放

因此,画布绘图不会在“楼梯像素”之间绘制具有更深颜色的额外像素以进行平滑处理。像这样 平滑

但我对如何做到这一点很感兴趣。是否有一些平滑图片的偏好或方法?谢谢!

编辑:我在这里创立

smoothing android-canvas

2
推荐指数
1
解决办法
1490
查看次数

Android 中的 drawRoundRect 不起作用

我想在 Android 中使用 drawRoundRect 方法绘制一个圆角矩形。

void drawRoundRect (RectF rect, float rx,  float ry, Paint paint)
Run Code Online (Sandbox Code Playgroud)

我使用的是 Android Studio,我的测试设备使用的是 Android 6.0.1,API 23

这是我的代码的一部分。当我在 rx 和 ry 中放置零时,它会起作用。

public void draw(Canvas canvas){
        canvas.drawColor(Color.WHITE);
        canvas.drawRoundRect(rect, 0, 0, pnt);
}
Run Code Online (Sandbox Code Playgroud)

这会在我的屏幕上绘制一个黑色矩形。

但是当我试图让它圆润时,

public void draw(Canvas canvas){
        canvas.drawColor(Color.WHITE);
        canvas.drawRoundRect(rect, 10, 10, pnt);
}
Run Code Online (Sandbox Code Playgroud)

它什么也没画。这只会绘制白色背景....

我在 rx 和 ry 中尝试了不同的数字,如 100、3、5、0.03f 等,

但是任何大于 0 的数字都会使 drawRoundRect() 不起作用。

我的代码有什么问题吗...?

java android android-custom-view android-canvas

2
推荐指数
1
解决办法
5237
查看次数