标签: android-canvas

如何在View的背景上设置drawable?Android的

我的自定义视图中的下一个代码扩展了EditText:

protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

                int count = getLineCount();
                Canvas cvs= new Canvas();
                Drawable dr = this.getBackground();
                Rect r = mRect;
                Paint paint = mPaint;
                mTextPaint.setTextSize(this.getTextSize());
                Paint PaintText = mTextPaint;

                for (int i = 0; i < count; i++) {
                    int baseline = getLineBounds(i, r);
                    cvs.drawText(Integer.toString(i+1), r.left, baseline + 1, PaintText);
                    cvs.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint); 
                }
                cvs.drawLine(PaintText.measureText(Integer.toString(count)), this.getTop(), PaintText.measureText(Integer.toString(count)), this.getBottom(), paint);
                dr.setBounds(0, 0, this.getRight(), this.getBottom());
                dr.draw(cvs);
                this.setBackgroundDrawable(dr);
            }
Run Code Online (Sandbox Code Playgroud)

为什么这个观点的背景上没有任何内容?

android background draw drawable android-canvas

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

在画布上绘制一个矩形,中心位于触摸点

我正在尝试在画布上绘制一个矩形,中心位于触摸点.我正在使用以下代码:

canvas.drawRect((point.x + 15), (point.y + 15),(point.x + 15),(point.y + 15), paint);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

但是当我使用时,

canvas.drawRect(point.x , point.y ,(point.x + 30),(point.y + 30), paint);
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,它有效.但唯一的危害是它不以触摸坐标为中心.矩形的左上角与触摸坐标重合.我哪里错了?

android android-canvas

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

将触摸值转换为基于矩阵的点

我正在按矩阵翻译和缩放图像,现在我有矩阵值.所以从矩阵值我想将我的触摸坐标转换为它通过矩阵得到的位置.那我该怎么办呢?请尽快帮助我.

private void drawPoint(float x, float y, float pressure, float width) {

 // left is tx of matrix 
     // top is ty of matrix

    float curX = (x - left) / (scale * scale);
    float curY = (y - top) / (scale * scale);

         canvas.drawPoint((curX - left), (curY - top) , mPaint);
}
Run Code Online (Sandbox Code Playgroud)

android matrix android-canvas

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

Android - 用户用手指画线

我想在Android上构建一个工具,用户可以在图片上绘制一些简单的对象(例如直线,圆或箭头).我首先开始尝试线条部分,事实上我可以成功地绘制它.逻辑是用户点击一个点然后拖动他们的手指,画线.我使用这样的类(它基于DonGru的答案):

public class DrawView extends View {
    Paint paint = new Paint();
    float Sx, Sy, Lx, Ly;

    public DrawView(Context context, float x1, float y1, float x2, float y2) {
        super(context);

        paint.setColor(Color.RED);
        Sx=x1;
        Sy=y1;
        Lx=x2;
        Ly=y2;   
    }

    @Override
    public void onDraw(Canvas canvas) {
            canvas.drawLine(Sx, Sy, Lx, Ly, paint);
    }
}
Run Code Online (Sandbox Code Playgroud)

从活动代码我使用onTouch监听器,如下所示:

@Override
public boolean onTouch(View view, MotionEvent event) { 
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            Sx1 = event.getX();
            Sy1 = event.getY();
            return true;

        case MotionEvent.ACTION_MOVE:
            Cx1 = event.getX();
            Cy1 = …
Run Code Online (Sandbox Code Playgroud)

android draw ontouchlistener touch-event android-canvas

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

使用Canvas将圆转换为环?

我正在使用自定义视图创建圆圈:

canvas.drawCircle(width/2, width/2, radius, paint1);
Run Code Online (Sandbox Code Playgroud)

现在,我想从内部清空圆圈,就像戒指一样.

绘制另一个较小的白色圆圈将引发另一个问题 我打算让我的观点听取用户点击.我想只听环上的点击!

有没有办法排除画布的某些部分?

android android-canvas

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

在另一个Android上覆盖Bitmap

你好伙计们我​​正在尝试获取一个图像(来自资源的帧)将其覆盖在原始位图上.到目前为止,我无法使我的Bitmap进入框架,因为框架始终为空.原始位图现在显示在框架内.这是我用来完成这个的代码.

  Canvas canvas = new Canvas();
    Bitmap border = null;
    Bitmap scaledBorder = null;
    border = BitmapFactory.decodeResource(getResources(), R.drawable.frame1);
    int width = bmp.getWidth();
    int height = bmp.getHeight();
    scaledBorder = Bitmap.createScaledBitmap(border,width,height, false);
    canvas.drawBitmap(scaledBorder, 0, 0, new Paint());
    view.setImageBitmap(scaledBorder);
Run Code Online (Sandbox Code Playgroud)

bmp作为我在Gallery或Camera中的原始位图.我找不到把它们放在一起.只显示帧而不是bmp.提前致谢.

android bitmap bitmapimage android-canvas

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

Android:生成视图的位图而不绘图

我们在从特定视图生成位图时遇到问题.限制是它无法呈现视图(绘图).有没有人有任何提示如何解决这个问题?

类视图的文档(http://developer.android.com/reference/android/view/View.html)对Android用于呈现View的步骤有一些解释.在这种情况下,我们将进入"布局",而不是"绘图".谁有任何想法,可以展示一个例子?

我的代码生成异常:错误 - >宽度和高度必须> 0

...
public static Bitmap loadBitmapFromView(View v) {
    Bitmap b = null;
    try {
        b = Bitmap.createBitmap(
                v.getWidth(),
                v.getHeight(), 
                Bitmap.Config.ARGB_8888);                
        Canvas c = new Canvas(b);
        v.measure(v.getWidth(), v.getHeight()); 
        v.layout(0, 0, v.getWidth(), v.getHeight());
        v.draw(c);

    } catch (Exception e) {

        Log.e(MainActivity.TAG, "error -> "+e.getMessage());
    }



    return b;
}


public void snap(View v) {


    LayoutInflater inflate = (LayoutInflater) getBaseContext()
            .getSystemService(LAYOUT_INFLATER_SERVICE);
    View view = new View(getBaseContext());
    view = inflate.inflate(R.layout.list_item, null);


    Log.d(MainActivity.TAG, "getWidth -> "+view.getWidth());
    Log.d(MainActivity.TAG, "getHeight   -> "+view.getHeight()); …
Run Code Online (Sandbox Code Playgroud)

android android-canvas

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

Android - 相机变焦不起作用

我创建了一个应用程序.在我是随机产生latitude,并longitudeGoogleMap并通过该值下页..即CameraPage.但是,在CameraPage上,引脚没有像地图上那样正常掉落..我已经实现了camera-zoom其他方法,但仍然无法正常工作..

请检查屏幕截图..

MapPage

在此输入图像描述

CameraPage

在此输入图像描述

是否有任何解决方案可以缩放相机上的引脚而无需外部变焦控制?

它应该在CameraPage加载时默认缩放..

编辑::

码::

ArrayList<Point> props = new ArrayList<Point>();
            props.add(new Point(a_latitude, a_longitude, a_username));
            props.add(new Point(b_latitude, b_longitude, b_username));
            props.add(new Point(c_latitude, c_longitude, c_username));
            props.add(new Point(d_latitude, d_longitude, d_username));
            props.add(new Point(e_latitude, e_longitude, e_username));
            props.add(new Point(f_latitude, f_longitude, f_username));
            props.add(new Point(g_latitude, g_longitude, g_username));
            props.add(new Point(h_latitude, h_longitude, h_username));
            props.add(new Point(i_latitude, i_longitude, i_username));
            props.add(new Point(j_latitude, j_longitude, j_username));


    mPaint.setColor(Color.BLACK);
    mPaint.setTextSize(30);
    mPaint.setStrokeWidth(DpiUtils.getPxFromDpi(getContext(), 2));
    mPaint.setAntiAlias(true);      


    mSpots = new Bitmap[props.size()];
    for (int i = 0; i < mSpots.length; …
Run Code Online (Sandbox Code Playgroud)

android android-camera android-canvas

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

一行包含一个点

我希望用户能够在画布周围拖动方块的边缘.使用我当前的解决方案它可以工作,但有毛刺,有时无法选择边缘.是否有一种干净的方法来判断是否已经点击了一条线(例如,通过坐标)?这就是我目前正在测试的方式:

// check edge pressed, edge is the line between to
// coords e.g. (i) & (i = 1)
for (int i = 0; i < coords.size(); i++) {
    p1 = coords.get(i);
    if ((i + 1) > (coords.size() - 1)) p2 = coords.get(0);
    else p2 = coords.get(i + 1);

    // is this the line pressed
    if (p1.x <= event.getX() + 5 && event.getX() - 5 <= p2.x && p1.y <= event.getY() + 5 && event.getY() - 5 <= p2.y) { …
Run Code Online (Sandbox Code Playgroud)

android point path android-canvas

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

在具有自定义形状的画布上绘制位图

我想在画布上绘制具有以下形状的图像:

在此输入图像描述

黑色必须由我的图像替换.我目前正在绘制整个图像.我只是不知道我怎么能得到那种形状?

    canvas.drawBitmap(header,0,0,mPaint);
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

android android-canvas

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