为某种视图设置背景的最佳方法是什么?例如,背景的2个变体: 背景带有梯度,圆角和边界 背景只有一种颜色和圆角 那么,哪些变体会更好,九点或可绘制的XML资源? 解决方案 我的猜测是,NinePatch在大多数情况下会更快.这是我发现的. GradientDrawable(XML中用于rects的一种)用法_r1/android/graphics/drawable/gradientDrawable.java#249">此代码呼叫到Canvas,又使用本机呼叫,导致 SkCanvas ,另一方面, NinePatch的draw()几乎为零java代码 core/jni/android/graphics/ninepatch.cpp">呼叫NinePatch.cpp 不久请调用NinePatchImpl.cpp - NinePatch_draw() ----这就是魔术所在.那里的代码在标记区域进行迭代,在许多后续呼叫之后,使用SkDraw中的逻辑大致相同(仅drawR
以下是关于 android-drawable 的编程技术问答
我想在画布上绘制圆形矩形填充颜色(或位图),并用中风,但没有某些选定的角落 ,也没有边界在某些选定的侧面.有什么想法我能实现这一目标? 解决方案 您可以将绘图过程分为两个部分. 绘制填充区域 试图绘制标准SDK API不支持的形状时,canvas.drawpath方法将是一种好方法. Path path = new Path(); Rect drawingRect = {the rect area you want to draw} RectF topLeftArcBound = new RectF(); RectF topRightArcBound = new RectF(); RectF bottomLeftArcBound = new RectF(); RectF bottomRightArcBound = new RectF(); topRightArcBound.set(drawingRect.right - topRightRadius * 2, dr
我想在Android中的Parse Cloud Server中上传图像.但是我无法做到. 我尝试了以下代码: Drawable drawable = getResources().getDrawable(R.drawable.profilepic) ; Bitmap bitmap = (Bitmap)(Bitmap)drawable() ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream); byte[] data = stream.toByteArray(); ParseFile imageFile = new ParseFile("image.png", data); imageFile.saveInBackground(); 请让我知道我该怎么做. 解
我有一个ShapeDrawable: final ShapeDrawable drawable = new ShapeDrawable(shape); drawable.getPaint().setStyle(Paint.Style.FILL); drawable.getPaint().setColor(0xFFffffff); 我想为此可绘制的框架设置边框(笔触)颜色和宽度. 我尝试setStyle(Paint.Style.FILL_AND_STROKE) 但是它设置了背景和边框相同的颜色 解决方案 使用 drawable.getPaint().setStyle(Paint.Style.STROKE); drawable.getPaint().setStrokeWidth(2); // in pixel 其他解决方案 如果您有一个视图,例如需要设置背景和边框的文本视图,则可以像此Kotlin代码一样执行此操作: val view = findV
我目前正在尝试创建一个益智游戏,每个拼图游戏都有网格,并且每个单元格应该能够显示触觉的视觉(唯一视觉)指示.因此,我打算使用 viewGroupOveroverlay自定义视图: 在每个 cellview 中 @Override public boolean onTouchEvent(MotionEvent event) { if(event.getAction() == MotionEvent.ACTION_DOWN) { LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); View myView = inflater.inflate(R.layout.overlay, null); gridView.getOverla
我使用InputStream和OutputStream将图像从res/drawable保存到Gallery.它可以正常工作并保存图像.但是问题是它不会在画廊中更新图像.如果我使用ES File Explorer检查文件夹,那么我可以在那里看到图像.我还检查了ddms,它还在执行write代码执行后尽快更新图像. 如果我保存服务器映像,它可以正常工作.如何防止这个问题?我想在图像保存后立即更新画廊. 我还尝试了MediaScanner扫描文件夹,但没有效果. 我的代码: Toast.makeText(context, "Downloading Image...\nPlease Wait.", Toast.LENGTH_LONG).show(); File direct = new File(Environment.getExternalStorageDirectory() + "/Im
我只有一点ListView包含所有已安装的应用程序及其图标 但是,如果安装了太多应用程序,我会在做outOfMemoryErrors 时遇到outOfMemoryErrors Drawable app_icon = applicationInfoList.get(i).loadIcon(context.getPackageManager())); 对于每个ListEntry 到目前为止没问题,我知道为什么我遇到此错误(已加载太多图标,VM堆太少) 但是我看了Androids ManageApplications 活动的源代码 而且我从来没有在使用设置ManageApps 的同时,在任何一个 oom错误中运行 但是很奇怪的是,他们以完全相同的方式做 您在这里可以看到的那样: ,其中Drawable icon被加载 在列表视图中设置它的位置 但是我真的不明白为什么我会得到一个oom,而他们没有? 解决方案 自己解决了. 我现在将每个图像加载到缓
我们有一个cordova-app,该应用包含每个可绘制的XY文件夹中的文件'iCon.png'.我们使用OneSignal提供推送通知.通知正在按预期工作.除了小图标.我的手机顶部栏上只有一个空白图标,其中显示了应用程序符号.我尝试使用以下片段: { ... "small_icon" : "@android:drawable/icon.png" .... } 我还尝试了很多其他没有" android"的变化,没有"可绘制",无斜线,带有.png和.png.等等. 我在文档中找到了这一点: https://documentation.oneignal.oneignal.com/reference.com/reference#创建notification ) small_icon: stringOptional Specific Android icon to use. If blank the app icon is used. Must be th
有人知道一种通过资源ID设置在构造函数之后,以获取用于ActionBardrawerToggle的可绘制方法吗?我正在使用导航抽屉,我想以编程方式将颜色过滤器应用于图标,但是我不知道如何以绘制方式访问它.任何帮助,将不胜感激.谢谢! 解决方案 作为该视图的框架ID是隐藏的,我发现访问它的唯一方法是根据Home View在其中的位置行走层次结构. public ImageView getUpView() { ViewGroup parentView = (ViewGroup) findViewById(android.R.id.home).getParent(); return (ImageView) parentView.getChildAt(0); }
我是一个新手程序员,我正在制作一个Android程序,该程序从给定的URL在ImageView上显示图像.我的问题是如何在异步上使用它? 这些代码可在Min SDK 2.2上使用,但我切换到Min SDK 3.0,因此它需要在异步上运行.感谢您的帮助! :) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); satellite(); //satellite's image from main menu } //******satellite url private void satellite() { // TODO Auto-generated method stub ImageView imgView =(ImageVie
我已经使用Eclipse创建了新的Android Phonegap项目,并将我现有的iPhone Phonegap项目www文件夹放置. 我在此处显示的Android文件夹中的Android设备中添加了所有图标和屏幕. 对于HDPI,我有以下图标和屏幕. 资产\ www \ res \ icon \ android \ icon-72-hdpi.png 资产\ www \ res \ screen \ android \ screen-hdpi-portrait.png 当我在模拟器中运行应用程序时,它会不断显示默认的电话隙图标和启动屏幕. 我为LDIP,MDPI,HDPI,XHDPI添加了图标和屏幕. 这是我的config.xml
我正在为Android编写一个实时游戏,在查看了SDK中提供的样本中的一些代码之后,我对何时应该使用 bitmap 或可绘制的示例感到困惑在游戏中的精灵中. 有什么区别?对于精灵而言,哪一个更好(更快),哪一个更好? 解决方案 要了解一个更好的想法,您可能想观看此视频: http://www.youtube.com/watch?v=u4bk5rmipic /p> 有趣的是,他不是Java程序员,但是一位经验丰富的游戏程序员,他的方法可以帮助您编写测试以确定哪个是最好的. 例如,如果您实际上有静态背景,则可能会发现Bitmap对背景图像更好,但是,如果您要通过编程方式更改它,则可能会有问题. ,除了速度之外,还有其他考虑因素,例如,您可能会发现内存将是一个问题,并且您一次想在屏幕上有多少个精灵将是一个问题.
我正在研究一个游戏簿应用程序,该应用程序显示了ViewPager中的12个视图. 这是我的自定义pageradapter: private class ImagePagerAdapter extends PagerAdapter { private int[] mImages = new int[] { R.drawable.copertinai, R.drawable.blui, R.drawable.azzurroi, R.drawable.rossoi, R.drawable.gialloi, R.drawable.verdei, R.drawable.rosai, R.drawable.grigioi, R.drawable.neroi, R.drawable.arancionei, R.drawable.marronei, R.drawable.violai, R.d
我只是试图根据一个值更改行内的颜色,但没有一个可绘制的适配器更改了所有这些. 这是我的适配器: public class ReportAdapter extends RecyclerView.Adapter { DataBaseHelper dataBase; private LayoutInflater inflater; List data = Collections.emptyList(); Context context; OnItemClickListener itemClickListener; public ReportAdapter(Context context, List data, OnItemClickListener itemClickListener) {