Articles of xml

安装到外部存储时,Android PdfDocument已损坏

我正在尝试使用Androids原生PdfDocument类(来自api 19)创建一个简单的PDF文档。 我想要的是拥有一个XML布局文件,例如名为pdf_doc.xml ,然后在创建PDF时对其进行充气。 在pdf_doc.xml中,我会有一堆可以在代码中获取的视图,然后单独绘制到PdfDocuments页面上。 问题是,这会创建一个损坏的PDF文件。 另一方面,如果我只是创建一个简单的TextView,在我的main_activity.xml (我在创建PDF时使用的活动的xml)中使用该TextView,它可以正常工作。 为什么TextView来自膨胀的布局还是活动的布局会有所不同? 我试图以错误的方式做到这一点吗? 仅供参考:以编程方式创建TextView时也会失败。 以下是我的源代码。 这两个函数在彼此之后立即调用。 第一个创建PDF,另一个保存。 问题在于视图,称为内容 ,即从膨胀的布局中获取。 如果我把TextView放在Activity的XML中,然后从活动中获取它,就像这个act.findViewById(R.id.pdf_text); 它然后按预期工作。 码: public static PdfDocument createPdf(Activity act){ PrintAttributes printAttrs = new PrintAttributes.Builder(). setColorMode(PrintAttributes.COLOR_MODE_COLOR). setMediaSize(PrintAttributes.MediaSize.ISO_A4). setMinMargins(PrintAttributes.Margins.NO_MARGINS). build(); ViewGroup mainLayout = (ViewGroup) View.inflate(act, R.layout.pdf_doc, null); int pageHeight = printAttrs.getMediaSize().getHeightMils() / 1000 * 72; int pageWidth = printAttrs.getMediaSize().getWidthMils() / 1000 * […]

水平滚动文本性能问题

我的应用程序包含一些应该水平滚动的textViews 。 当我的layout首次加载但是在单击button以加载另一个layout然后重新单击该button以加载第一个layout 这些textViews在“大”延迟(如20秒+)之后开始滚动 。 我试图用Layout Inspector , Hierarchy Viewer等找出这个问题的根源,但没有运气。 更新:今天我注意到一些奇怪的事情。当我从第一个布局转到第二个布局时,反之亦然,尽管TextViews停止滚动,如果我关闭并重新打开手机的屏幕,滚动就像一个魅力。 这对我来说似乎很奇怪,你知道造成这种情况的原因是什么?为什么? CardViewActivity.java: public class CardViewActivity extends AppCompatActivity { private ImageView cardArtImageView; private TextView leaderSkillDescText; private TextView superAttackTitleText; private TextView superAttackDescText; private TextView passiveSkillTitleText; private TextView passiveSkillDescText; private TextView hpText; private TextView attText; private TextView defText; private TextView costText; private Button arrowButton; private int selectedItemPosition; […]

SyncML与Android和PHP Web服务

如果有人使用SyncML (Synchronization Markup Language)并且它是一个很好的标准,我只是好奇。 我们需要它来将信息从平板电脑设备同步到网络服务器(通过网络服务),反之亦然。 SyncML太臃肿了吗? 我正在研究一些SyncML API并且非常令人生畏。 因此,最重要的选择是使用此标准或构建内部解决方案。 即使我在内部完成,我们也必须创建某种方式来定义我们发送的数据,所以一定要考虑构建XML模式,或者使用JSON。 任何意见? 想法?

创建一个返回JSON而不是XML的ASP.net WebService

也许该方法正在返回它应该如何,但我基本上只是做了一个看起来像这样的测试方法 [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public string TestJSON() { var location = new Location[2]; location[0] = new Location(); location[0].Latitute = “19”; location[0].Longitude = “27”; location[1] = new Location(); location[1].Latitute = “-81.9”; location[1].Longitude = “28”; return new JavaScriptSerializer().Serialize(location); } 当我从我的Android应用程序中点击这个时,我得到了这样的exception Value <?xml of type java.lang.String cannot be converted to JSONArray 我认为这个方法只会直接返回JSON,但这就是Web服务方法返回的内容 [{“Latitute”:”19″,”Longitude”:”27″},{“Latitute”:”-81.9″,”Longitude”:”28″}] 这是假设是这样的吗? 有没有办法删除JSON之外的XML东西? 我不确定在我的webservice中我必须做什么才能使它返回正确的数据格式 在Android上使用代码调用Web服务 […]

如何在按钮中设置textview和drawable之间的距离?

伙计们,我有一个像下面的图片按钮 我想改变文本与drawable之间的距离。 怎么骗这个? 这是我的按钮的xml代码 这是style.xml中的CAGButton 3dip @color/cag_brown 0dp wrap_content 1 @drawable/selector_button” 好的,谢谢你。 🙂

Android:如何在Activity类中获取XML的自定义属性

如何在Activity类中获取属性值“required”? 1. values \ attrs.xml 2. layout \ text.xml

Android – 资源$ NotFoundException

我有一个超过100.000用户的应用程序。 但是在某些设备上(~50)我得到一个奇怪的例外。 堆栈跟踪说,没有find可绘制的。 这是堆栈跟踪: java.lang.RuntimeException: Unable to start activity ComponentInfo{mindmApp.the.big.bang.theory.quiz/mindmApp.the.big.bang.theory.quiz.GameNormalActivity}: android.view.InflateException: Binary XML file line #237: Error inflating class … Caused by: android.view.InflateException: Binary XML file line #237: Error inflating class at android.view.LayoutInflater.createView(LayoutInflater.java:606) at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678) … Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:417) at android.view.LayoutInflater.createView(LayoutInflater.java:586) … 28 more Caused by: […]

自动完成function在特定层次结构的XML文件中不起作用

特别是XML节点层次结构,例如。 DrawerLayout-> RelativeLayout-> ImageButton自动完成function无法按预期工作。 建议清单包含无效项目。 例如。 android:src没有显示在ImageButton里面。 提案无效: 另一方面,如果层次结构是RelativeLayout-> RelativeLayout-> ImageButton,则一切正常。 有效提案: 我已经尝试过了: 重新打开XML文件 – 没有效果 重新开放项目 – 没有效果 重启日食 – 没有效果

在使用SAX进行解析时,如何保留未绑定到对象的XML节点

我正在开发一个与蓝牙相机接口的Android应用程序。 对于存储在相机上的每个剪辑,我们在XML文件中存储关于剪辑的一些字段(其中一些用户可以更改)。 目前,这个应用程序是唯一一个将此xml数据写入设备的应用程序,但将来有可能桌面应用程序或iphone应用程序也可能在此处写入数据。 我不想假设另一个应用程序也没有其他字段(特别是如果他们有一个更新版本的应用程序添加了此版本尚不支持的新字段)。 所以我想要防止的是我们在另一个应用程序中向这个XML文件添加新字段的情况,然后用户开始使用android应用程序并清除其他字段,因为它不知道它们。 让我们假设一个例子: My Title 12/24/2012 Blah 当从设备读取时,这将被转换为看起来像这样的Clip对象(简化为简洁起见) public class Clip { public String title, category; public Date date; } 所以我使用SAX来解析数据并将其存储到Clip中。 我只是将字符存储在StringBuilder中,当我到达标题,类别和日期的结束元素时将它们写出来。 我意识到,当我将这些数据写回设备时,如果原始文档中还有其他标签,则它们不会被写入,因为我只写出我所知道的字段。 这让我觉得SAX可能是错误的选择,也许我应该使用DOM或其​​他东西,我可以更容易地写出最初存在的任何其他元素。 或者我想也许我的Clip类包含一些通用XMLtypes(可能是DOM)的ArrayList,并且在startTag中我检查该元素是否不是预定义标记之一,如果是,直到我到达该标记的末尾我存储整个结构(但在什么?)..然后在写回来时,我将浏览所有其他标签并将它们写出到xml文件(以及我当然知道的字段) 这是一个众所周知的解决方案的常见问题吗? – 更新5/22/12 – 我没有在实际的xml中提到根节点(实际上称为注释),我们使用的版本号已设置为1.我将要做的短期内要求我的应用程序的版本号支持是> = xml数据的版本号是什么。 如果xml是一个更大的数字,我将尝试解析回读,但将拒绝对模型的任何保存。 关于如何做到这一点,我仍然对任何工作实例感兴趣。 顺便说一下,我想到了另一个应该非常简单的解决方案。 我想我可以使用XPATH查找我知道的节点,并在更新数据时替换这些节点的内容。 但是我运行了一些基准测试,当解析xml到内存中时,开销是荒谬的。 只是解析操作甚至没有进行任何查找导致性能比SAX差20倍。使用xpath一般来说解析速度慢30-50倍,考虑到我在列表视图中解析它们,这真的很糟糕。 所以我的想法是让SAX将节点解析为剪辑,但是将整个XML存储在Clip类的variables中(记住,这个xml很短,小于2kb)。 然后,当我将数据写回来时,我可以使用XPATH来替换原始XML中我知道的节点。 仍然对任何其他解决方案感兴趣。 除非它包含一些代码示例,否则我可能不会接受解决方案。

org.w3c.dom.Node.insertBefore:NullPointerException,Bug?

Android-SDK的org.w3c.dom.Node.insertBefore说明如下: public abstract Node insertBefore (Node newChild, Node refChild) Inserts the node newChild before the existing child node refChild. If refChild is null, insert newChild at the end of the list of children. 但是,如果我执行以下操作,则会在insertBefore实现中出现NullPointerException: if(doc != null && doc.getFirstChild() != null && tmpNode != null) doc.getFirstChild().insertBefore(tmpNode, null); WARN/System.err(11029): at org.apache.harmony.xml.dom.InnerNodeImpl.insertBefore(InnerNodeImpl.java:86) 我尝试使用Android 2.2和Android 2.3.3! 对我来说,这似乎是一个错误。 任何人都可以确认/复制吗? […]