我们如何创建如下的ballon drawable形状.我们可以动态地改变它的颜色.

我有一个ImageView与android:src设置为一个ShapedDrawable,即白圈.我想要的是ImageView在响应某些事件的运行时将其着色.imgView.setColorFilter似乎是解决方案,但在使用此(尝试不同的参数)后,图像变得不可见(我在屏幕上看不到它).
怎么解决这个?还有更好的方法来制作彩色圆圈吗?
android drawable android-imageview colorfilter shapedrawable
我有一个非常简单的形状,我想设置宽度:
<shape android:shape="rectangle">
<solid android:color="@color/orange"/>
<size android:width="2dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
但是,当我将它指定给EditText的背景时,它只显示橙色背景而不是宽度为2dp的矩形.为什么不设置尺寸?我想创建一个透明的drawable,左侧是橙色矩形.我也把它包裹在选择器中:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true">
<shape android:shape="rectangle">
<solid android:color="@color/orange"/>
<size android:width="2dp" android:height="6dp"/>
</shape>
</item>
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
</shape>
</item>
</selector>
Run Code Online (Sandbox Code Playgroud)
我试过添加高度只是为了看它是否会改变大小.它没有.这就像它完全忽略了它的大小.WTF?
我正在尝试使用径向渐变背景创建一个可绘制的形状,半径将根据屏幕大小进行调整(请参阅相关文档).
这是我的代码:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<gradient
android:endColor="#000"
android:gradientRadius="50%p"
android:startColor="#5d2456"
android:type="radial" />
</shape>
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.如果我删除"%p",它可以工作,但是半径将是静态的,因此不会调整到屏幕尺寸......任何想法有什么问题?
以下是虚线,在XML中定义为ShapeDrawable:
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="line">
<size
android:height="2dp"
android:width="700dp" />
<stroke
android:width="1dp"
android:color="@android:color/black"
android:dashWidth="1dp"
android:dashGap="2dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
这将在几个姜饼手机上绘制一个漂亮的虚线.然而,在Galaxy Nexus上,破折号似乎被忽略,并且形状被绘制为连续的线.更奇怪的是,运行ICS的仿真器将使用破折号正确渲染它,它只是物理设备搞砸了.
我错过了一些明显的东西吗 或者这真的是Android 4.0的错误吗?这条线在几个地方使用.以下是ImageView的示例:
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/observation_observe_side_margin"
android:layout_marginRight="@dimen/observation_observe_side_margin"
android:layout_marginTop="16dp"
android:contentDescription="@string/dotted_line_description"
android:src="@drawable/dotted_line" />
Run Code Online (Sandbox Code Playgroud) 我一直在尝试添加一个可绘制的形状作为我要在地图上添加的标记的标记图标.
形状看起来像这样(res/drawable/blue_circle.xml):
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<size
android:width="15dp"
android:height="15dp" />
<solid
android:color="@color/Blue" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我尝试添加这样的标记:
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.blue_circle));
Run Code Online (Sandbox Code Playgroud)
显然我得到一个NullPointer异常.
标记图标必须是位图吗?我可以添加形状drawables作为标记图标吗?如果是的话,我做错了什么?
android google-maps-markers shapedrawable google-maps-android-api-2
我试图用OvalShape绘制自定义ShapeDrawable,填充白色和灰色边框.我创建了一个这样的drawable:
ShapeDrawable drawable = new ShapeDrawable(new OvalShape());
drawable.getPaint().setColor(Color.GRAY);
drawable.getPaint().setStyle(Style.STROKE);
drawable.getPaint().setStrokeWidth(getPixels(5));
drawable.getPaint().setAntiAlias(true);
Run Code Online (Sandbox Code Playgroud)
但结果是:角落问题

这个想法是以编程方式创建这样的形状,但具有不同的颜色:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<corners android:radius="10dip"/>
<stroke android:color="#FF0000" android:width="5dip"/>
<solid android:color="@android:color/transparent"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
怎么能解决这个问题?
我用drawable创建了聊天气泡看起来很好,现在我想在drawable下面添加阴影效果,这样就可以产生3d效果.我不想使用9-pitch图像.我只是想知道如何在这个drawable上添加阴影效果.我的代码是
---- right_bubble_chat_drawable
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="15dp" />
<solid android:color="@color/chatrightbubbleColor" />
<padding
android:bottom="10dp"
android:left="10dp"
android:right="10dp"
android:top="10dp" />
<size
android:height="@dimen/normal_button_height"
android:width="@dimen/normal_button_width" />
Run Code Online (Sandbox Code Playgroud)
---用于角落指针'chat_laftarraow'
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item >
<rotate
android:fromDegrees="90"
android:toDegrees="-90"
android:pivotX="50%"
android:pivotY="50%" >
<rotate
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="-40%"
android:pivotY="86%" >
<shape
android:shape="rectangle" >
<stroke android:color="#00aaef" android:width="1dp"/>
<solid
android:color="#00aaef" />
</shape>
</rotate>
</rotate>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
-------我正在使用它们
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<View
android:id="@+id/left_chatArror"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_alignParentRight="true"
android:layout_marginTop="6dp"
android:background="@drawable/chat_laftarraow"/>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="220dp" …Run Code Online (Sandbox Code Playgroud) 我有一个在下面的xml文件中定义的形状,现在我想以编程方式更改为纯色.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#DFDFE0" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
<stroke
android:width="3dp"
android:color="#2E3135" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我想我应该有一个扩展ShapeDrawable的类,并实现onDraw方法.谁知道怎么样?
我希望矩形的左右两侧(而不是角落)是弯曲的.或者说椭圆形的顶部和底部是直的.
我怎样才能实现这样的目标?

android ×10
shapedrawable ×10
drawable ×3
xml-drawable ×2
android-xml ×1
colorfilter ×1
xml-layout ×1