Articles of drawable

Android Drawable内存泄漏

我使用了几个大的drawable,我不知道如何pipe理内存泄漏。 我跟踪了我的应用程序的堆大小,它不停止增长(作为分配的内存)。 特别是长大不变的“字节数组(byte [])”types。 (在Eclipse的DDMS堆视图中) 我的应用程序由一个使用片段的活动组成。 那些碎片显示了几个大的图像。 我试图将drawablescallback设置为null,将drawables设置为null,当我popup一个片段但堆不会减less时清除我的易失性caching(这会阻止我的应用程序执行太多的磁盘IO操作)。 其实我每次调用:Drawable.createFromResourceStream(context.getResources(),value,new FileInputStream(f),f.getName(),opts); 堆长大了。 我怎样才能释放记忆? 谢谢 !

android xml在全屏幕背景上的可绘制图像

我需要一个XML绘制(为cordova初始屏幕)在Android中。 我想要在屏幕上显示一个透明的标志(没有拉伸),而屏幕的其余部分有背景颜色设置。 我首先尝试的是只在xml文件中添加图像: <?xml version="1.0" encoding="utf-8"?> <bitmap android:src="@drawable/splashscreen" android:gravity="center_horizontal|center_vertical" /> 这显示了标志居中在屏幕上,但(显然)没有背景色。 所以我尝试了不同的解决scheme来为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="#FFFFFF" /> </shape> </item> <item> <bitmap android:src="@drawable/splashscreen" android:gravity="center_horizontal|center_vertical" /> </item> </layer-list> 现在图像有一个背景颜色 – 但它不是全屏。 它显示为全屏时会调整为图像大小并拉伸。 那么,我怎样才能得到一个全屏可绘制的背景颜色,并在其上居中的图像? 编辑:所有的答案build议使用RelativeLayout – 但我认为这是不可能在一个XML文件中的“可绘制的”,对不对? 我没有任何我可以编辑的布局 – 只有被cordova引用的drawable。

在Android 4.2的StateListDrawable中使用默认的ShapeDrawable

任何人都有问题在android 4.2中的StateListDrawable中使用新的ShapeDrawable() ? 我曾经这样做过: ShapeDrawable bg = new ShapeDrawable(); //default Ctor ShapeDrawable hl = new ShapeDrawable(); hl.getPaint().setColor(color1); bg.getPaint().setColor(color2); StateListDrawable s1 = new StateListDrawable(); s1.addState(new int[]{android.R.attr.state_pressed}, hl); s1.addState(new int[]{}, bg); 但是这在Android 4.2中不起作用,抛出一个nullpointerexception : java.lang.NullPointerException at android.graphics.drawable.ShapeDrawable.mutate(ShapeDrawable.java:387) at android.graphics.drawable.DrawableContainer.selectDrawable(DrawableContainer.java:315) at android.graphics.drawable.StateListDrawable.onStateChange(StateListDrawable.java:106) at android.graphics.drawable.StateListDrawable.addState(StateListDrawable.java:89) 我通过更改ShapeDrawable的构造函数来解决问题: ShapeDrawable bg = new ShapeDrawable(new RectShape()); ShapeDrawable hl = new ShapeDrawable(new RectShape()); 现在, […]

pipe理多个asynctask从HTML代码下载多个图像,泄漏内存,任何想法?

我正在开发一个Android应用程序。 现在我将bbcodeparsing为html,并将其显示在textview中,textview位于自定义列表视图内。 我使用Html.ImageGetter()来显示从AsyncTask下载的图像。 它适用于less量的图片。 但是,如果应用程序被要求下载40-50张照片,则会创build40-50个任务,并变得一团糟。 每个任务打开一个stream来下载图像。 之后,它将字节解码成位图,resize,保存到SD卡并循环播放位图。 现在,如果应用程序正在加载所有这些图像在同一时间,它使用大量的内存。 我设法让它通过了48 MB。 有16和48之间有很大的差距:(。我search如何解决这个。我从谷歌下载AsyncTask代码: http://google.com/codesearch/p?hl=en&sa=N&cd=2&ct=rc#uX1GffpyOZk/core/java/android/os/AsyncTask.java&q=lang:java%20AsyncTask 并将池大小设置为3.但这并没有帮助。 我真的不知道我在哪里放弃公羊。 只要我把一个大任务排队,我的公羊就疯了。 收到几张图片后,情况会变得很糟糕。 我不认为这是图像,因为我可以在任何图像显示之前达到30 MB。 应用程序本身包括视图,信息和服务使用13 MB,其余的都在这里泄露。 队列本身是否做出大内存分配? 或者是Html.ImageGetter()以某种方式泄漏了大量的内存? 有一个更好的方法吗? 在这里我加载图像: public void LoadImages(String source) { myurl = null; try { myurl = new URL(source); } catch (MalformedURLException e) { e.printStackTrace(); } new DownloadImageFromPost().execute(myurl); } private class DownloadImageFromPost extends AsyncTask<URL, Integer, Bitmap> […]

在Android中的EditText的左侧设置图像

我有一个联系表单,我想添加一些图标到我的编辑文本,以获得更好的外观。 我想创buildEditText如下所示。 我有像下面的EditText。 我得到了类似的结果。 我希望图像完全位于左侧,如上图所示。 我知道在内部EditText是使用Nine Patch图像,我认为这就是为什么结果是一些什么不同。 谁能知道如何解决这个问题? <EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="51dip" android:hint="@string/name" android:inputType="text" android:drawableLeft="@drawable/name_icon_edittext" />

Android – 把一个图像名称“包”抛出编译时错误

我试图在我的可绘制文件夹中放置一个图像名称“package.png”。 只要我把它们粘贴到文件夹中,就会出现以下错误: [2012-05-26 12:40:30 – MyApp] res/drawable-mdpi/package.png:0: error: invalid symbol: 'package' 但只要我重命名为其他的名字,这个图像工作正常。 任何想法为什么发生这种情况,我怎么能解决这个问题,并有一个名为“包”的可绘制。

合并多个drawable

我有多个drawables,想要将它合并成一个drawable(例如,4个方块来创build一个大的方形,如Windows徽标:))。 我怎样才能做到这一点?

如何将前景属性设置为其他非FrameLayout视图

我想知道如何在不同于FrameLayout的视图中应用或模拟前景效果,如LinearLayout或RelativeLayout 这是我现在所拥有的: <?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/cardContent" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/row_background" android:foreground="@drawable/foreground_row"> … </FrameLayout> 而我想要的东西是这样的: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/cardContent" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/row_background" app:foreground="@drawable/foreground_row"> … </RelativeLayout> 提前致谢!!

在圆圈内绘制文字

我正在开发一个Android应用程序,我想用里面的文字画一个圆圈。 我希望填充是白色的黑色边框和黑色的文字。 现在我有一个ShapeDrawable : mDrawable = new ShapeDrawable(new OvalShape()); mDrawable.getPaint().setColor(0xFFFFFF); 这然而使整个圆圈白色(和白色的背景,你不能看到它),并经过一段时间search如何可以添加文字的形状,我似乎无法find一个有效的答案。 我还应该注意到,我将根据用户input添加任意数量的不同文字的圆圈。 任何帮助将非常感激!

如何使可绘制形状的底部边框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" […]