标签: shape

如何在Android中绘画时屏蔽一个简单的区域?

这是一个简化的描述:想象一下,我给了一个View类,它绘制了一张墙的图片,我想用一个切出的窗口绘制它.假设我扩展了View类并覆盖其dispatchDraw()方法以执行以下操作.首先绘制背景,如果有任何要通过窗口看到.接下来我想以某种方式屏蔽矩形窗口区域,然后调用super.dispatchDraw().最后,我想取下面具并画一个站在窗户上的人,这样他们就会在背景和墙壁上画画.我怎样才能做到这一点?

以下是一些看起来与我需要的代码相近的代码:

@Override
protected void dispatchDraw(Canvas into) {
    int w = into.getWidth();
    int h = into.getHeight();
    int w3 = w / 3;
    int h3 = h / 3;
    into.drawLine(0, 0, w, h, mPaint);
    Region protect = new Region(w / 3, h / 3, 2 * w / 3, 2 * h / 3);
    into.clipRegion(protect, Op.INTERSECT);
    into.drawColor(Color.MAGENTA); // or super.dispatchDraw() here.
}
Run Code Online (Sandbox Code Playgroud)

这给了我这个:

在此输入图像描述

这与我想要的完全相反.请注意上面代码中名为"protect"的区域.我希望洋红色填充发生在除了该区域之外的任何地方.具体来说,我想看到的是:

在此输入图像描述

在窗口的类比中,我应该能够移除限制并以正常方式绘制一个人或某物,这与窗户和墙壁重叠.

编辑:这是Rajesh CP答案的简化工作版本.我还在末尾的所有内容上添加了一个红色的"前景"条纹,以表明我可以删除限制并添加它们.谢谢Rajesh!

public class MaskTest extends Activity {

    @Override
    protected void onCreate(Bundle …
Run Code Online (Sandbox Code Playgroud)

android mask shape

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

ListView行中的ImageView上的圆角

电梯视图中每行都有一个用户图标.我想要一个圆角.这是我拥有的,它什么都不做:

 <ImageView
        android:background="@drawable/profile_widget_selector"
        android:id="@+id/ivTopUserPP"
        android:layout_width="65dp"
        android:layout_height="65dp"
        android:baselineAlignBottom="@drawable/profile_pic_shape"
        android:src="@drawable/usericon" />
Run Code Online (Sandbox Code Playgroud)

profile_pic_shape.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#bbbbbb" />

    <stroke
        android:width="1dp"
        android:color="#bbb" />

    <padding
        android:bottom="1dp"
        android:left="1dp"
        android:right="1dp"
        android:top="1dp" />

    <corners android:topLeftRadius="40dp" />

</shape>
Run Code Online (Sandbox Code Playgroud)

android shape imageview

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

将LineGeometry与EllipseGeometry结合(代码中,不是XAML)

我正在尝试使用WPF创建自定义形状.对于初学者我只是想创建一个简单的线,每端都有一个圆圈(我知道有LineCaps,但这不是我想要的).

我已经研究了一些教程和最简单的方法,似乎使用了一个CombinedGeometry.但是我无法让它正常工作.这是我创建几何对象的代码:

protected override Geometry DefiningGeometry
    {
        get
        {
            Point ellipseCenter1 = new Point(X1 - this.CapDiameter / 2, Y1 - this.CapDiameter / 2);
            Point ellipseCenter2 = new Point(X2 - this.CapDiameter / 2, Y2 - this.CapDiameter / 2);
            var ellipse1 = new EllipseGeometry(ellipseCenter1, CapDiameter, CapDiameter);
            var ellipse2 = new EllipseGeometry(ellipseCenter2, CapDiameter, CapDiameter);
            var line = new LineGeometry(this.StartPoint, this.EndPoint);

            var combined1 = new CombinedGeometry(GeometryCombineMode.Union, ellipse1, line);
            var combined2 = new CombinedGeometry(GeometryCombineMode.Union, combined1, ellipse2);

            // Freeze the geometry for performance benefits …
Run Code Online (Sandbox Code Playgroud)

c# wpf geometry shape

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

获取 NumPy 数组中列数的函数,如果它是一维数组,则返回 1

我已经定义了对3xN NumPy数组的操作,我想遍历数组的每一列。

我试过:

for i in range(nparray.shape[1]):
Run Code Online (Sandbox Code Playgroud)

但是,如果nparray.ndim == 1,则失败。

有没有一种干净的方法来确定NumPy数组的列数,例如,1确定它是否是一个1D数组(就像 MATLAB 的size操作那样)?

否则,我已经实施了:

if nparray.ndim == 1:
    num_points = 1
else:
    num_points = nparray.shape[1]

for i in range(num_points):
Run Code Online (Sandbox Code Playgroud)

python numpy shape

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

如何在带有直边的 css 中创建“平行四边形”形状?

我正在尝试在 css 中创建一个右侧笔直的平行四边形,但到目前为止我正在努力实现这一目标。

我正在使用 css ...

-webkit-transform: skew(-18deg);
-moz-transform: skew(-18deg);
-o-transform: skew(-18deg);
Run Code Online (Sandbox Code Playgroud)

...“倾斜”矩形以创建平行四边形。

我想知道是否可以将右侧弄直?

它是否需要 :before 和 :after 在 css 中?

任何这方面的帮助都会很棒。

谢谢,

菲尔

css shape css-shapes

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

使用css创建自定义箭头形状

我有一个css箭头框覆盖图像滑块,但我需要使尾部缩进和透明,以便在其后面看到图像.需要白色部分是透明的.请参阅下面的附图和我的css.谢谢.css箭头框图像

#flag { 
width: 400px; height: 80px; background: #231f20; position: relative;
}

#flag:before { 
content: ""; 
position: absolute; 
top: 0; 

width: 0; 
height: 0; 
border-top: 40px solid transparent; 

border-bottom: 40px solid transparent; 

border-left: 35px solid white;

}

#flag:after { 
content: ""; 
position: absolute; 
left: 400px; 
bottom: 0; 
width: 0; 
height: 0; 
border-top: 40px solid transparent;

border-bottom: 40px solid transparent;

border-left: 45px solid #231f20;

}
Run Code Online (Sandbox Code Playgroud)

html css shape css3 css-shapes

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

XML颜色用于矩形的弯曲边缘之外的区域

我正在为RelativeLayout的背景制作一个矩形,并想知道如何使该矩形的圆角边缘之外的区域也变为darker_grey.目前,只有这个矩形的内部是darker_grey

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <solid android:color="@android:color/darker_gray" />
    <stroke android:width="1dip" android:color="@android:color/black"/>
    <corners android:radius="20dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

xml android shape android-studio

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

如何从box2D中的Body*获得灯具的Shape点数?

嘿,我正在尝试集成Box2D和SFML,我的类接受一个Body指针,我需要使用它来获取一个fixture的所有点,这样我就可以形成一个身体的图形表示.

我如何得到这些积分?

c++ pointers shape box2d

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

以编程方式绘制形状,零件角仅为圆角

这里的问题是在onDraw方法中绘制这种形状.

我已经尝试使用PathCornerPathEffect,但底角必须是尖锐的,所以它是不工作的解决方案.

在此输入图像描述

android shape android-layout

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

android triangle drawablw xml

我想绘制一个等边三角形.我已经检查但它是倒置的.我想要一个看起来像下图的三角形.

三角形: 在此输入图像描述

triangle_shape.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <rotate
            android:fromDegrees="45"
            android:toDegrees="45"
            android:pivotX="-40%"
            android:pivotY="87%" >
            <shape
                android:shape="rectangle" >
                <stroke android:color="#fff" android:width="1dp"/>
                <solid
                    android:color="#000" />
            </shape>
        </rotate>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

目前它看起来像..

在此输入图像描述

android shape drawable

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