Questions tagged «android-drawable»

在Android中,Drawable是“可以绘制的东西”的通用抽象。

22
如何修复:android.app.RemoteServiceException:从程序包中发布的错误通知*:无法创建图标:StatusBarIcon
我在崩溃日志中看到以下异常: android.app.RemoteServiceException: Bad notification posted from package com.my.package: Couldn't create icon: StatusBarIcon(pkg=com.my.package user=0 id=0x7f02015d level=0 visible=true num=0 ) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1456) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:146) at android.app.ActivityThread.main(ActivityThread.java:5487) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) at dalvik.system.NativeStart.main(Native Method) 我使用以下方法通过AlarmManager从PendingIntent集中的IntentService发布我的通知。此处传递的所有值均来自PendingIntent / IntentService中的附加包。 /** * Notification * * @param c * @param …

13
为按钮背景颜色添加波纹效果到我的按钮?
我创建了一个按钮,我想向该按钮添加波纹效果! 我创建了一个按钮bg XML文件:(bg_btn.xml) <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFFFF" android:endColor="#00FF00" android:angle="270" /> <corners android:radius="3dp" /> <stroke android:width="5px" android:color="#000000" /> </shape> 这是我的涟漪效果文件:(ripple_bg.xml) <ripple xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:color="#f816a463" tools:targetApi="lollipop"> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="#f816a463" /> </shape> </item> </ripple> 这是我的按钮,我想添加波纹效果: <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_centerHorizontal="true" android:layout_marginTop="173dp" android:textColor="#fff" android:background="@drawable/ripple_bg" android:clickable="true" /> 但是添加波纹效果后,按钮背景是透明的,并且仅在单击时显示按钮,如下所示: 点击之前 …

14
Android中的样式底线
我需要创建一个Android形状,以便只有底部具有笔触(虚线)。当我尝试以下操作时,笔划将形状从中心一分为二。有人知道如何正确处理吗?笔触必须是底线/边界。我正在使用形状作为TextView的背景。拜托,别介意我为什么需要它。 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <solid android:color="#1bd4f6" /> </shape> </item> <item> <shape android:shape="line" > <padding android:bottom="1dp" /> <stroke android:dashGap="10px" android:dashWidth="10px" android:width="1dp" android:color="#ababb2" /> </shape> </item> </layer-list>

4
如何在不缩放的情况下将矢量可绘制在图层列表中居中
我试图VectorDrawable在LayerList不缩放向量的情况下使用a 。例如: <layer-list> <item android:drawable="@color/grid_item_activated"/> <item android:gravity="center" android:drawable="@drawable/ic_check_white_48dp"/> </layer-list> 可绘制的ic_check_white_48dpID定义为: <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="48dp" android:height="48dp" android:viewportWidth="24.0" android:viewportHeight="24.0"> <path android:fillColor="#FFFFFFFF" android:pathData="M9,16.17L4.83,12l-1.42,1.41L9,19 21,7l-1.41,-1.41z"/> </vector> 所需的效果是使选中图标位于可绘制图层的中心,而无需缩放。问题是,上面的图层列表会导致选中图标缩放以适合图层大小。 我可以产生期望的效果,如果我替换的PNG每个密度的向量可绘制和修改层-列表作为这样: <layer-list> <item android:drawable="@color/grid_item_activated"/> <item> <bitmap android:gravity="center" android:src="@drawable/ic_check_white_48dp"/> </item> </layer-list> 有什么办法可以使用VectorDrawable?

5
如何从可绘制对象引用样式属性?
我想为我的应用程序选择2个主题。为了做到这一点,我定义了一些属性,如下所示: <attr format="color" name="item_background" /> 然后,我创建了两个主题,如下所示: <style name="ThemeA"> <item name="item_background">#123456</item> </style> <style name="ThemeB"> <item name="item_background">#ABCDEF</item> </style> 这种方法效果很好,使我可以轻松创建和修改多个主题。问题在于,它似乎只能在Views中使用,而不能在Drawables中使用。 例如,从布局内的View引用值可以工作: <TextView android:background="?item_background" /> 但是在Drawable中执行相同操作不会: <shape android:shape="rectangle"> <solid android:color="?item_background" /> </shape> 运行应用程序时出现此错误: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 如果不是?item_background我使用硬编码颜色,而是可以使用它,但是那不允许我使用主题。我也尝试过?attr:item_background,但同样发生。 我该怎么办?为什么在Views中却不能在Drawables中使用呢?我在文档的任何地方都找不到此限制...


7
开放式Android笔画?
是否可以创建仅在某些侧面具有笔触的Android形状对象? 例如,我有: <stroke android:width="3dip" android:color="#000000" android:dashWidth="10dip" android:dashGap="6dip" /> 类似于以下CSS: border: 3px dashed black; 如何仅在一侧设置行程?这就是我在CSS中的做法: border-left: 3px dashed black; 您如何在Android XML中做到这一点?

16
在棒棒糖崩溃前使用android矢量Drawables
我在Lollipop之前在Android中使用矢量可绘制对象,这些是我的某些库和工具版本: Android Studio:2.0 Android Gradle插件:2.0.0 编译工具:23.0.2 Android支持库:23.3.0 我在应用程序级别添加了此属性 Build.Gradle android { defaultConfig { vectorDrawables.useSupportLibrary = true } } 还值得一提的是,我使用了一个额外的可绘制对象,例如Android官方博客(此处的链接)中所述的LayerDrawable(layer_list),用于为外部的矢量可绘制对象设置可绘制对象app:srcCompat <level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/search"/> </level-list> 您会发现直接引用app:srcCompat之外的矢量可绘制对象将在Lollipop之前失败。但是,当在另一个可绘制容器(例如StateListDrawable,InsetDrawable,LayerDrawable,LevelListDrawable和RotateDrawable)中引用矢量可绘制对象时,AppCompat确实支持加载矢量可绘制对象。通过使用这种 间接方式,您可以在诸如TextView的android:drawableLeft属性之类的情况下使用矢量可绘制对象,该属性通常无法支持矢量可绘制对象。 当我使用时,app:srcCompat一切正常,但是当我使用时: android:background android:drawableLeft android:drawableRight android:drawableTop android:drawableBottom 上ImageView,ImageButton,TextView或EditText之前棒棒糖,它引发厚望: Caused by: android.content.res.Resources$NotFoundException: File res/drawable/search_toggle.xml from drawable resource ID #0x7f0200a9

9
Android:context.getDrawable()的替代方法
我context.getDrawable()在项目中使用过这样的代码: Drawable greenProgressbar = context.getDrawable(R.drawable.custom_progressbargreen); 但是Eclipse给我一个错误,它需要一个Minimum API level of 21。这意味着经过Google的快速搜索后,我的APP只能在上使用Android 5.0。由于并非所有设备都在使用此版本的android,因此我希望有一个替代版本context.getDrawable()。

6
从文件路径创建位图/绘图
我正在尝试从现有文件路径创建位图或可绘制对象。 String path = intent.getStringExtra("FilePath"); BitmapFactory.Options option = new BitmapFactory.Options(); option.inPreferredConfig = Bitmap.Config.ARGB_8888; mImg.setImageBitmap(BitmapFactory.decodeFile(path)); // mImg.setImageBitmap(BitmapFactory.decodeFile(path, option)); // mImg.setImageDrawable(Drawable.createFromPath(path)); mImg.setVisibility(View.VISIBLE); mText.setText(path); 但是setImageBitmap(),setImageDrawable()不会显示路径中的图像。我已经打印了路径,mText它看起来像:/storage/sdcard0/DCIM/100LGDSC/CAM00001.jpg 我究竟做错了什么?有人可以帮助我吗?

7
向ListView的最后一个元素添加下边距
我需要添加添加具有复杂项目背景的ListView:顶部和底部的偶数/奇数和圆角不同。看起来像这样: 我已经通过级别列表实现了所有这些东西,但是我还想做一件事。现在,底部项目位于屏幕底部附近。最好增加一些空间。 我不想在ListView中添加底边距,我只需要为最后一项添加边距。 我看到的方法是: 页脚 一种技巧–将带有空白TextView的页脚添加到ListView。但是页脚是非常不稳定的东西,它们通常在notifyDataSetChanged之后消失,并且没有办法将它们恢复 具有透明像素的图像 我要求设计师将透明像素添加到底部背景资源。不幸的是,在这种情况下,垂直居中被完全破坏了。例如,有9patch这样的: 布局如下: <?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" > <!-- View with background with transparent pixels on bottom --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/item" android:background="@drawable/some_bgr" android:padding="10dp" > <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Title" android:layout_gravity="center" android:textSize="18sp" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Detail" android:layout_gravity="center" android:textSize="18sp" /> </LinearLayout> …

4
带有圆角的进度栏?
我正在尝试实现此进度栏设计: 我目前的代码产生此: 这是代码: <item android:id="@android:id/background"> <shape> <corners android:radius="8dp"/> <solid android:color="@color/dirtyWhite"/> </shape> </item> <item android:id="@android:id/progress"> <clip> <shape> <corners android:radius="8dp"/> <solid android:color="@color/colorPrimaryDark"/> </shape> </clip> </item> 我的进度条: <ProgressBar android:id="@+id/activeProgress" style="?android:attr/progressBarStyleHorizontal" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_weight="1" android:progress="10" android:progressDrawable="@drawable/rounded_corners_progress_bar"/> 我尝试添加<size>的属性<shape>中<clip,以使进度外形有点小,但没有奏效。另外,进度条是扁平的,我想按照设计弯曲。为了实现设计,我需要更改什么?

8
不同分辨率支持android
编辑问题: 移动分辨率:我想设计不同的屏幕dpi,例如以下分辨率。 小320x480,480×800,540x960,720x1280(三星S3),1080×1920(S4,Nexus5,纳克斯5X,摩托G4),2560 X 1440(的Nexus 6,纳克斯6P,三星边缘) 平板分辨率: 480×800(Micromax的),600x1024(三星Tab2 ),800x1280(nexus 7),1200x1920(新nexus 7),2048x1536(nexus 9) 我想根据设备显示分辨率使用不同的字体大小。 Q1)best解决此问题的方法是什么problem? Q2)进行抛出编码或XML的最佳选择是什么? Q3)哪个可绘制文件夹代表哪个设备分辨率? Q4)应用启动器图标大小是否不同?

6
创建一个新的可绘制颜色
我正在尝试将十六进制值转换为int,以便创建新的可绘制颜色。我不确定是否可以,但是根据文档,应该可以。它明确地要求 公共ColorDrawable(int颜色) 在API级别1中添加。创建具有指定颜色的新ColorDrawable。 参数 color 绘制的颜色。 因此,我的代码无法正常工作,因为我收到一个无效的int:“ FF6666”错误。有任何想法吗? int decode = Integer.decode("FF6666"); ColorDrawable colorDrawable = new ColorDrawable(decode);


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.