这是我的XML代码工作正常,唯一的问题是它在所有四个边显示边框,而我只想在顶部和底部显示边框.我怎样才能做到这一点?
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<solid android:color="#FFFFFF" />
<stroke
android:width="3dip"
android:color="#B1BCBE"
/>
<padding
android:bottom="0dip"
android:left="0dip"
android:right="0dip"
android:top="0dip"
/>
</shape>
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作如下所示的自定义形状的线性布局
我试图只使一侧弯曲.尝试了角半径,但它没有给出与上面相同的外观.
已尝试过如下背景形状: -
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#3F51B5" />
<padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="7dp" />
<corners
android:bottomLeftRadius="50dp"
android:bottomRightRadius="50dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
它只对角进行四舍五入,并且在增加值时,形状不会被保留,它会变得太圆.我想弯曲线而不是圆角
我想要绘制一个图表,就像附加的图像一样,但是我在绘制右边的红色垂直矩形以及将其他对象放在顶部时遇到了问题.最大的问题是与Android设备的众多不同屏幕尺寸有关.我完全理解我在这个过程中想要实现的目标,其中包括以下目标.所有帮助将受到高度赞赏.

布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<my.package.name.ComplexDiagram
android:layout_width="match_parent"
android:layout_height="65dp"
android:layout_centerVertical="true"
/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
Java的
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.view.View;
public class ComplexDiagram extends View {
private int measuredWidth, measuredHeight;
private Paint mGreyRectPaint, mBlackLinePaint, mRedRectPaint;
private RectF mGreyRect, mBlackLineF, mRedRectF;
public ComplexDiagram(Context context) {
super(context);
init(context, null, 0);
}
public ComplexDiagram(Context context, AttributeSet attrs) {
super(context, attrs);
init(context, attrs, 0);
}
public ComplexDiagram(Context context, AttributeSet attrs, …Run Code Online (Sandbox Code Playgroud) 有没有办法从xml中的另一个形状中减去或"剪切"一个形状?我想在中心创建一个带有透明圆孔的白色正方形...主要是因为我不想做位图操作来制作圆形图像:).
是的,我知道这个解决方案(如何在Android中创建圆形ImageView?)存在.

我正在尝试ImageView在下图中制作一个圆角,但右下角。尝试使用背景形状,但它根本不起作用。Glide 加载的所有图像。我应该使用类似的东西ViewOutlineProvider吗?有没有一种有效的方法来做到这一点?谢谢!
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<corners
android:radius="2dp"
android:bottomRightRadius="20dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
android android-shape android-shapedrawable material-components material-components-android
如何编码这种类型的密码屏幕设计,而输入密码后圆圈应该改变或者图像视图应该改变.
Login.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/light_grey"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Enter MPIN"
android:textStyle="bold"
android:textSize="18dp"
android:layout_margin="10dp"
android:layout_gravity="center_horizontal"
/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_gravity="center_horizontal"
>
<ImageView
android:id="@+id/imageview_circle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:src="@drawable/circle"
/>
<ImageView
android:id="@+id/imageview_circle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:src="@drawable/circle"
/>
<ImageView
android:id="@+id/imageview_circle3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:src="@drawable/circle"
/>
<ImageView
android:id="@+id/imageview_circle4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="6dp"
android:src="@drawable/circle"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@color/light_grey2"
>
<EditText
android:id="@+id/editText_enter_mpin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:maxLength="4" …Run Code Online (Sandbox Code Playgroud) 我在两个或多个矩形对象之间绘制箭头时遇到问题。我有一个存储几个矩形的数组列表。
例如,用户在画布上有两个矩形。单击绘制箭头按钮后,用户将能够单击第一个矩形并拖动到第二个矩形,箭头将在两个矩形之间形成。
我不知道如何获取触摸坐标以绘制箭头。我能够获取当前的 x 和 y 位置。另外,如果我的矩形移动了,我该如何重绘箭头。
我只能设法绘制箭头。
这是我想要实现的图像:

我的代码如下:
public static ArrayList<RectF> rects = new ArrayList<RectF>();
public void addRectangle() {
RectF rect = new RectF();
rect.set(x, y, x + 80, y + 50);
rects.add(rect);
}
public void addArrow() {
//arrow head
Point a = new Point(0, 0);
Point b = new Point(0, 25);
Point c = new Point(21, 12);
Path path = new Path();
path.lineTo(b.x, b.y);
path.lineTo(c.x, c.y);
path.lineTo(a.x, a.y);
path.close();
paths.add(path);
}
@Override
protected void onDraw(Canvas canvas) { …Run Code Online (Sandbox Code Playgroud) 我有一个png drawable按钮.但是它的图像drawable有渐变,当应用9patch时它看起来很糟糕(渐变和9patch不兼容).我想用形状来做这件事.但我不能用android形状绘图,因为我很难理解它.
你能帮我用形状画出这个图像吗?
它包含一个边框渐变,内部是橙色矩形,圆角和阴影120°
我正在为android地图视图添加自定义标记.这是我正在使用它的图像.看起来像放置更多的标记大约100整个应用程序变慢.这是我正在使用的图像.
我计划将此图像绘制为XML中的形状,而不是使用此图像.怎么做?
我也按照本教程 显示自定义标记.这个自定义绘图是否延迟了应用程序?
什么是最好的方法呢?
android-shape ×10
android ×9
android-xml ×3
android-view ×1
canvas ×1
java ×1
layer-list ×1
material-components-android ×1
xml ×1