Articles of xml drawable

在textview下面画线不显示

我有一个textview我想在下面显示一行。 我正在使用drawableBottom属性来做到这一点。 这是我的代码 <TextView android:id="@+id/total" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" android:text="TextView" android:drawableBottom="@drawable/dividerline"/> 这里是我的dividerline.xml <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"> <stroke android:width="70dp" android:color="@android:color/black" /> <size android:height="1dp" /> <solid android:color="@android:color/black" /> </shape> 我没有得到错误。 它只是当我运行我的应用程序没有行出现在textview下面。 有一个误解drawableBottom属性? 期待一些帮助:)

Android:如何在可绘制的XML中使用当前主题的颜色?

我已经定义了两个不同的主要,主要黑暗,主光和重音颜色的主题。 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="colorPrimary">@color/primary</item> <item name="colorPrimaryDark">@color/primary_dark</item> <item name="colorAccent">@color/accent</item> </style> <style name="AppTheme2" parent="AppTheme"> <item name="colorPrimary">@color/primary_2</item> <item name="colorPrimaryDark">@color/primary_dark_2</item> <item name="colorAccent">@color/accent_2</item> </style> AppTheme是<application/>默认设置然后我将AppTheme2设置在特定的活动中。 在一个可绘制的文件xml中,我使用与colors.xml中定义的AppTheme相同的主色 这个drawable被用在了两个主题的许多活动中,所以当有AppTheme2时,我会看到不同的颜色。 有没有办法让drawable使用当前活动的当前主题的颜色?

规模可绘制 – 是否setImageLevel决定规模?

我已经创build了一个小testing应用程序来尝试绘制比例。 我在xml中定义我的drawable,并将其保存为scale_up.xml 。 我有一个ImageView的main.xml布局文件。 我在ImageView中使用android:src="@drawable/scale_up"来使用我在xml中创build的drawable。 在我的活动中,我使用myImageView.setImageLevel(some level here)来设置在main.xml定义的ImageView的级别。 一切正常,ImageView显示在scale_up中定义的drawable。 我的困惑是以下几点: 如果将级别设置为10000,那么更改scale_up.xml的scaleHeight和scaleWidth %将无法察觉到差异 改变setImageLevel (在0到10000之间)的级别会改变图像的大小 – 真的只能在5000左右。scaleHeight和scaleWidth的%值越高,图像越小(取决于setImageLevel()的值) 我想我的问题是: 是否正确使用setImageLevel() ,传递一个介于0和10000之间的级别 – 在活动中控制在xml文件中定义的drawable的大小? scaleHeight,scaleWidth和setImageLevel()之间的关系是什么?就像我现在看到的那样,我可以将scaleHeight和scaleWidth设置为100%,然后使用setImageLevel(5000)来获得50%的缩放图像 -减lesssetImageLevel(0 to 10000)会改变比例 – 使scaleHeight和scaleWidth % scaleWidth毫无意义。 欣赏这个的任何澄清,也许是一个如何正确使用可绘制的尺寸(在XML中定义)的例子。

在Android上重新使用不同的屏幕尺寸和密度的可绘制图像

背景:我正在开发具有1920×1200分辨率图像资源的平板电脑(横向)的Android应用程序。 该分辨率适合于以下屏幕尺寸和密度: drawable-xlarge-hdpi drawable-large-xhdpi 问题:如果我将包含在这两个文件夹中的所有图像资源都包含在内,APK的最终大小将会不必要的过重 我不成功的方法:我试图使用Alias这个定义在这里的drawables: http : //developer.android.com/guide/topics/resources/providing-resources.html#AliasResources 我有我的图像资源在: res/drawable-nodpi/image_cmn.png 和相应的屏幕大小和密度文件夹中的两个别名: res/drawable-xlarge-hdpi/image.xml res/drawable-large-xhdpi/image.xml image.xml: <?xml version="1.0" encoding="utf-8"?> <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/image_cmn" /> 当然,当我在布局文件中使用我的图像时,我引用了别名: <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/image" /> 但遗憾的是Android并没有正确调整我的testing平板电脑(mdpi)的资源,结果是我有更大的图像。 我试图将原始PNG的res / drawable移动到res / raw,但结果与res / drawable-nodpi相同 。 如果我把这个PN​​G的res / drawable-xlarge-hdpi (同样的xml别名)结果是正确的,但自然不能解决我的问题,因为我也不得不将它们复制到res / drawable-large-xhdpi和apk大小增加。 有谁知道如何做到这一点?

select器,层列表和形状/位图在相同的XML

我在drawable文件夹内的xml中有这样的代码: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <layer-list> <item> <shape android:shape="rectangle"> <size android:width="90dp" android:height="90dp" /> <solid android:color="#9933CC" /> </shape> </item> <item> <bitmap android:gravity="center" android:src="@drawable/main_achievements_synthesis" /> </item> </layer-list> </item> <item> <layer-list> <item> <shape android:shape="rectangle"> <size android:width="90dp" android:height="90dp" /> <solid android:color="#AA66CC" /> </shape> </item> <item> <bitmap android:gravity="center" android:src="@drawable/main_achievements_synthesis" /> </item> </layer-list> </item> </selector> 我使用它有一个图像与2个状态(作为一个button使用)。 一切正常仿真器和设备上的预期。 我知道我可以创build不同的可绘制的XML,并作出参考达到相同的结果。 […]

如何使可绘制形状的底部边框XMLselect器?

我试图创build一个可绘制的形状与我的button不同的状态。 所以我写了这个: <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:color="@android:color/black" > <shape android:shape="rectangle" > <solid android:color="@color/NEGATIVE_pressed" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> </item> <item android:state_focused="true" android:color="@android:color/black" > <shape android:shape="rectangle" > <solid android:color="@color/NEGATIVE_focused" /> <stroke android:width="1dp" android:color="@color/ORANGE" /> <corners android:radius="4dp" /> </shape> </item> <item android:color="@android:color/black" > <shape android:shape="rectangle" > <solid android:color="@color/NEGATIVE" /> <stroke android:width="1dp" android:color="@color/NEGATIVE" […]

在android中设置形状背景透明

我有一个可以绘制的形状,我想用作背景。 我想要的形状是透明的。 但是到目前为止它不是。 我怎么做? 这是我有什么: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:padding="10dp" android:shape="rectangle" > <solid android:color="#80000000" /> <stroke android:width="1dip" android:color="#000000" /> <corners android:radius="10dp" /> </shape> 我期望行<solid android:color="#80000000" />做的伎俩。 编辑: 在清单中,我设置了android:theme="@android:style/Theme.Dialog" 。 这可能是问题的原因吗? 我基本上是想把这个观点置于另一个之上。 更改为00或FF或其他任何不起作用。

Android圆形进度栏圆angular

我正在试图获得圆angular的圆形进度条,如下所示。 但是我无法获得圆angular,所以我可以得到圆形的进度条。 我正在尝试使用xml drawable来绘制它。 <ProgressBar android:id="@+id/onboarding_activity_progress_bar" android:layout_gravity="center" android:padding="10dp" android:layout_width="120dp" android:layout_height="120dp" style="?android:attr/progressBarStyleHorizontal" android:progressDrawable="@drawable/progressbar_onboarding_view" tools:progress="60"/> Progressbar_onboarding_view.xml <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"> <shape android:useLevel="false" android:innerRadiusRatio="2.0" android:shape="ring" android:thickness="10dp"> <solid android:color="@color/progress_bar_background_color" /> <corners android:radius="50dp"/> </shape> </item> <item android:id="@android:id/progress"> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:useLevel="true" android:innerRadiusRatio="2.0" android:shape="ring" android:thickness="10dp"> <solid android:color="@color/progress_bar_color" /> </shape> <!– <scale android:drawable="@drawable/progressbar_round_corner" android:scaleWidth="98%" /> –> </item> </layer-list> progressbar_rounded_corner.xml <?xml version="1.0" encoding="utf-8"?> <shape […]

XML中的垂直条纹背景?

我想设置一个垂直条纹的规则网格视图背景。 条纹在两种颜色之间交替。 (例如,在一行中,可能有6个浅灰色像素,后面是2个深灰色像素,重复以填充宽度。) 使用位图(作为资源或在代码中生成)很容易做到这一点。 例如: ShapeDrawable bg = new ShapeDrawable(new RectShape()); int[] pixels = new int[] { 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFFCCCCCC, 0xFF999999, 0xFF999999}; Bitmap bm = Bitmap.createBitmap(pixels, 8, 1, Bitmap.Config.ARGB_8888); Shader shader = new BitmapShader(bm, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT); bg.getPaint().setShader(shader); view.setBackgroundDrawable(bg); 有没有办法做到这一点严格的XML可绘制,而不使用位图资源?

可以在XML中创build一个固定宽度的drawable?

我试图简化一些graphics,要求每个密度都有9个补丁,只是使用一个XML drawable。 这是一个相当简单的graphics: 2细分市场: 两段都宽8dp 顶部段是2dp高 底部部分填充视图 右边充满了透明度 当设置为背景图像时给出这个结果: 看起来这应该相当简单,重新创build一个XML可绘制,并会避免创build5个不同的9补丁graphics。 不过,我已经研究了层次列表drawables,插入drawables,剪辑drawables – 他们似乎都需要事先知道视图的大小(例如,为了保持2dp的插入,你需要设置insetRight到视图的宽度 – 2dp)。 我也尝试使用shape标签的size标签,但不保持固定的大小,只是一个固定的比例(所以更高的意见,它会按比例缩放)。 我忽略了一些简单的东西,还是我不得不采取编程方式来检查布局之后呢?