在我的应用程序中,我需要在某些地方获取一些位图drawable,我不想保留引用R.所以我创建了一个类DrawableManager来管理drawables.
public class DrawableManager {
private static Context context = null;
public static void init(Context c) {
context = c;
}
public static Drawable getDrawable(String name) {
return R.drawable.?
}
}
Run Code Online (Sandbox Code Playgroud)
然后我想通过这个名字得到drawable(car.png放在res/drawables中):
Drawable d= DrawableManager.getDrawable("car.png");
Run Code Online (Sandbox Code Playgroud)
但是正如您所看到的,我无法通过名称访问资源:
public static Drawable getDrawable(String name) {
return R.drawable.?
}
Run Code Online (Sandbox Code Playgroud)
任何替代品?
我使用了一个Fragment到我的Android Studio项目New > Fragment > Fragment (Blank).其结果是,当我尝试运行,该项目将无法编译,因为它解决不了R.drawable.abc_ic_ab_back_mtrl_am_alpha的
toolbar.setNavigationIcon(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题?
看起来我也失去了访问权限 android:buttonTint
android drawable android-layout android-resources android-studio
嗨,我对Android Drawable类的两种方法感到困惑
getIntrinsicHeight()
getIntrinsicWidth()
Run Code Online (Sandbox Code Playgroud)
api定义说 http://developer.android.com/reference/android/graphics/drawable/Drawable.html#getIntrinsicHeight()
内在高度/宽度是什么意思?我的意思是它是实际图像的宽度?
我使用drawable作为TextView的背景,只是在文本下面有一个分隔线.用这个drawable-xml来解决它:
<?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="#FFDDDDDD" />
<gradient
android:angle="0"
android:startColor="#FFAAAAAA"
android:endColor="#FFEEEEEE"
/>
</shape>
</item>
<item android:bottom="2dp">
<shape
android:shape="rectangle">
<solid android:color="#FF000000" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
但是这种方法在黑色矩形上方绘制一个彩色矩形.我想只在形状底部的线条没有黑色矩形,因为黑色不透明.我怎么能实现这一目标?
我有一张来自网络的图片ImageView.它非常小(一个favicon),我想将它存储在我的SQLite数据库中.我可以得到一个Drawable,mImageView.getDrawable()但后来我不知道该怎么做.我不完全理解DrawableAndroid中的类.
我知道我可以从Bitmap类似的方式获得一个字节数组:
Bitmap defaultIcon = BitmapFactory.decodeStream(in);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
defaultIcon.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] bitmapdata = stream.toByteArray();
Run Code Online (Sandbox Code Playgroud)
但是如何从一个字节数组中获取Drawable?
如何通过Android形状drawable在Android中实现圆形,如下所示:

使用默认Android drawables时最好的方法是什么?我应该使用android.R.drawable或应该在我的项目中复制drawables并使用R.drawable?
是否有任何风险,在较新版本的Android中,某些默认的drawable被删除或调整大小?或者,以某种消极方式影响,我的应用程序的外观?此外,Android源代码中哪些drawables被认为是"稳定的",应该依赖?
我宁愿不复制drawables因为我认为应用程序的外观应与所使用的Android版本一致.因此,例如,对于版本1.6,它应该使用版本1.6的默认Android位图.
我在我的应用程序中添加了几个示例项,因此当用户第一次看到它时它看起来不那么空.带有示例项的列表应该有一个图像,我要使用的图像已经存储在应用程序的/ res/drawable-folder中.
因为我已经有一个方法从URI加载项目图像我想获取到/res/drawable/myImage.jpg的URI,但我似乎无法正确.
流程如下:使用表示图像URI的字符串创建项目.将项列表发送到列表列表通过将字符串转换为URL然后运行url.openStream()来将图像加载到后台任务中;
我已经为URI尝试了一些选项而没有任何成功."android.resource:// ....."说未找到unknow protocoll"file://"文件
所以现在我有点失去了如何解决这个问题..
我有一个ListView,其项目具有平铺背景.为此,我使用以下drawable xml:
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/tile"
android:tileMode="repeat" />
Run Code Online (Sandbox Code Playgroud)
通常,这是有效的.但是,有时,src drawable不会平铺,而是拉伸以填充整个列表项.(我有几个不同的瓷砖,我把它们混合在一个ListView中.如果有拉伸而不是平铺,那么它永远不会同时存在于所有这些中,因为这是值得的.)
我也尝试添加android:dither="true"到那个xml,因为我读到某个地方没有它可能会有bug.这并没有改变任何事情.
有没有人有同样的问题?你怎么修好它的?