标签: paint

在Android Studio消息"Paint.setShadowLayer ..图形不准确.."没有此代码

我在android studio xml预览中收到此消息:"布局编辑器中的图形预览可能不准确:不支持-Paint.setShadow." 在我的项目中根本没有这行代码.此外,我尝试运行"在路径中编辑 - 查找 - 查找"并且在我的所有项目中都没有找到这行代码,为什么我会收到此消息?

我读过这个问题,但是在我尝试使用包含阴影值的几行代码之后,不要认为正确的答案会导致此消息开始显示,但在删除这些行之后也会保留.

在此输入图像描述

xml android paint shadow

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

动态生成的线条,有效发光

我想用这样的发光效果绘制线条
发光线
问题 - 我必须根据用户的交互在程序中生成这一行(行的形式将在onTouchEvent- 中生成ACTION_MOVE).

我可以在没有xml文件或绘制premaid位图的情况下生成此效果吗?

android paint touch-event

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

如何使用不同的笔触和填充颜色绘制文本?

我想在我的应用程序中显示如下文字.我正在使用Paint有风格的课FILL_AND_STROKE来实现这一目标.但只有一种方法setColor()可用于设置颜色.

如何设置不同的笔触和填充颜色?

具有不同笔划和填充颜色的文本

java android paint

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

图形轴的Tickmark算法

我正在寻找一种在轴上放置刻度线的算法,给定要显示的范围,显示它的宽度,以及测量刻度线的字符串宽度的功能.

例如,假设我需要在1e-6和5e-6之间显示以及以像素显示的宽度,算法将确定我应该将标记(例如)放在1e-6,2e-6,3e-6处,4e-6和5e-6.给定较小的宽度,可以确定最佳放置仅在偶数位置,即2e-6和4e-6(因为放置更多的标记将导致它们重叠).

智能算法将优先考虑10,5和2的倍数的标记.此外,智能算法将在零附近对称.

algorithm optimization paint

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

如何在触摸时获得像素颜色?

我知道这是一个常见的问题,这个问题有很多答案.我已经使用了其中一些.虽然其中很多都是一样的.但令我伤心的是,他们都没有为我工作.以下我用过的代码.

-(void)getRGBAsFromImage:(UIImage*)image atX:(int)xx andY:(int)yy
{
    // First get the image into your data buffer
    CGImageRef imageRef = [image CGImage];
    NSUInteger width = CGImageGetWidth(imageRef);
    NSUInteger height = CGImageGetHeight(imageRef);
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    unsigned char *rawData = (unsigned char*) calloc(height * width * 4, sizeof(unsigned char));
    NSUInteger bytesPerPixel = 4;
    NSUInteger bytesPerRow = bytesPerPixel * width;
    NSUInteger bitsPerComponent = 8;
    CGContextRef context = CGBitmapContextCreate(rawData, width, height,
                                                 bitsPerComponent, bytesPerRow, colorSpace,
                                                 kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
    CGColorSpaceRelease(colorSpace);

    CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
    CGContextRelease(context);

    // Now …
Run Code Online (Sandbox Code Playgroud)

iphone pixel paint touch ios

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

如何设置paint.setColor(R.color.white)

我有一个使用Paint和Canvas绘制对象的自定义View.我的问题是如何设置:

int color = R.color.white;
paint.setColor(color);
Run Code Online (Sandbox Code Playgroud)

来自我的/res/valuse/color.xml,其中包括像

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#FFFFFF</color>
    <color name="black">#000000</color>
    ...
</resources>
Run Code Online (Sandbox Code Playgroud)

android canvas paint

21
推荐指数
3
解决办法
6万
查看次数

触摸时使某个位图区域透明

我的想法是将两个图像重叠在一起,并且在onTouch上,顶部图像应该在触摸的半径上变得透明,从而暴露底部图像.

这是我叠加2张图片的方式:

        Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
        Canvas canvas = new Canvas(bmOverlay);
        canvas.drawBitmap(bmp1, new Matrix(), null);
        canvas.drawBitmap(bmp2, new Matrix(), null);
Run Code Online (Sandbox Code Playgroud)

我已经查看了这篇文章,并在下面使用Paint来使其透明:

        mPaint = new Paint();
        mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
        mPaint.setColor(Color.TRANSPARENT);
        mPaint.setAntiAlias(true); 

public void onDraw(Canvas canvas) {
            canvas.drawCircle(40, 40, 30, mPaint); //hardcode to test
}
Run Code Online (Sandbox Code Playgroud)

问题是,我认为圆圈直接使2个图像在定义的半径上透明,我怎样才能使顶部位图透明?

android paint bitmap transparent

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

Java中的paint()和repaint()

我花了最近两个小时浏览和阅读这些方法和Graphics类,也许我很蠢,哈哈,但我只是不理解它们.它们适用于什么?我知道他们应该在屏幕上重绘或更新组件,但我从未理解为什么这是必需的(我是新手).例如,如果我在屏幕上移动JLabel,则调用setLocation()会将其移动得很好.这是不需要repaint()的场景吗?它在哪些场景中有用,为什么?

如果您认为这是一个可以使用搜索功能解决的问题,请道歉,但无论出于何种原因,我都没有得到它.

java paint repaint

20
推荐指数
3
解决办法
12万
查看次数

如何防止Android的drawBitmap只绘制黑色图像?

根据原始问题,最终结果是圆形矩形png,ImageView具有自然的下垂阴影.

我有阴影工作,但当它绘制时,它会使整个图像变黑.

替代文字

添加阴影时,如何防止原始图像(绝对不是黑色)变黑?

    BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
    Paint shadowPaint = new Paint();
    shadowPaint.setMaskFilter(blurFilter);

    int[] offsetXY = new int[2];
    Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
    Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);

    Canvas c = new Canvas(shadowImage);
    c.drawBitmap(originalBitmap, -offsetXY[0], -offsetXY[1], null);

    imageView.setImageBitmap(shadowImage);
Run Code Online (Sandbox Code Playgroud)





更新:

我实现了Josh关于复制到正确色彩空间的建议,现在它的效果非常好!对于未来的搜索者,此代码会在图像视图上生成阴影.您可以使用x和y,以及OUTER常量来获得所需的效果.

BlurMaskFilter blurFilter = new BlurMaskFilter(2, BlurMaskFilter.Blur.OUTER);
Paint shadowPaint = new Paint();
shadowPaint.setMaskFilter(blurFilter);

int[] offsetXY = new int[2];
Bitmap originalBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pier_t);
Bitmap shadowImage = originalBitmap.extractAlpha(shadowPaint, offsetXY);
Bitmap shadowImage32 = …
Run Code Online (Sandbox Code Playgroud)

android paint blur shadow drawbitmap

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

Android:使用Bezier的数字签名

在此输入图像描述
我正在尝试使用Bezier绘制两个数字签名,如上图所示.当我触摸并尝试绘制线条时,结果是点线但没有连续线.使用简单的签名完成简单的签名, 但我希望使用带触摸压力的Bezier创建更平滑的曲线. 试过这个链接

SignatureViewDemo.java

    public class SignatureViewDemo extends View {
        private int color = Color.BLACK;
        private Bitmap m_Bitmap;
        private final Paint m_BorderPaint;
        private Canvas m_Canvas;
        private Point m_CropBotRight;
        private Point m_CropTopLeft;
        private float m_CurrentX;
        private float m_CurrentY;
        private final float m_DesiredDash;
        private float m_LastWidth = 6.5F;
        private Paint m_PenPaint;
        private int m_PointIndex = 0;
        private ArrayList<Point> m_Points = new ArrayList<Point>();
        private final float m_StrokeWidth;
        boolean m_Empty;



    public SignatureViewDemo(Context paramContext) {

        this(paramContext, null);
    }

    public SignatureViewDemo(Context paramContext,
            AttributeSet paramAttributeSet) { …
Run Code Online (Sandbox Code Playgroud)

java android bezier paint handwriting

19
推荐指数
1
解决办法
4055
查看次数