我有一个来自Web服务的文本块,根据我预定义的一些标签,我想在将文本设置为TextView之前设置样式.对于粗体,斜体和下划线,我可以使用replaceAll命令轻松完成此操作:
PageText = PageText.replaceAll("\\*([a-zA-Z0-9]+)\\*", "<b>$1</b>");
PageText = PageText.replaceAll("=([a-zA-Z0-9]+)=", "<i>$1</i>");
PageText = PageText.replaceAll("_([a-zA-Z0-9]+)_", "<u>$1</u>");
txtPage.setText(Html.fromHtml(PageText), TextView.BufferType.SPANNABLE);
Run Code Online (Sandbox Code Playgroud)
所以,要加粗一个单词,用*表示它,用斜体表示,用_表示.
但是,对于删除线,Html.fromHtml不支持"strike"标记,因此不能以同样的方式完成.我已经看到使用Spannable在文本的一个部分上设置样式的示例,但它需要位置编号.所以,我想我可以遍历文本,搜索 - (标记代表警示),然后搜索下一个,跨越中间的文本,并重复所有这些字符串.它最终将成为10行循环代码,而其他代码则为1行,所以我想知道是否有更优雅的解决方案.
我有一个已经运行了大约2年的.Net Web应用程序.我们使用NewRelic监控它,每天至少一次,或者有时每天几次,我们会得到一段时间,每个请求都会导致以下错误:
System.BadImageFormatException ...无效的Typeref标记.
如果我们回收App Pool,则错误消失.如果我们什么也不做,那么错误就会消失,一切都很好.
我无法找到何时发生或哪个页面导致它的模式.
由于回收App Pool似乎有所帮助,它让我相信它是一个内存错误,所以我一直在努力减少我对ViewState的使用,特别是在大型GridView上.到目前为止,它没有帮助.
针对这个问题的其他建议?
我正在尝试显示URL中的图像,该图像可能大于屏幕尺寸.我有点工作,但我希望它可以缩放以适应屏幕,当屏幕方向改变时我也有问题.图像很小,我希望它的宽度也可以缩放到屏幕上.(在这两种情况下,我都希望图像用滚动条填充屏幕宽度(如果需要高度).
这是我的ImageView:
<ImageView android:id="@+id/ImageView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:adjustViewBounds="true">
</ImageView>
Run Code Online (Sandbox Code Playgroud)
这是加载图像的java代码:(为简单起见,删除了一些错误处理代码)
Object content = null;
try{
URL url = new URL("http://farm1.static.flickr.com/150/399390737_7a3d508730_b.jpg");
content = url.getContent();
}
catch(Exception ex)
{
ex.printStackTrace();
}
InputStream is = (InputStream)content;
Drawable image = Drawable.createFromStream(is, "src");
Image01.setImageDrawable(image);
Run Code Online (Sandbox Code Playgroud)
我尝试过android:scaleType的不同设置.如果以前曾问过这个问题,我很抱歉.我已经完成了很多关于这个主题的教程,但它们似乎对我没用.不确定它是否与图像的加载方式有关.(来自网络而不是本地资源)
另一个问题是有时图像甚至无法加载.没有运行时错误,我在ImageView中什么都没得到.
如果您需要更多信息或说明,请与我们联系.
我确信这是相当基本的,但我不知道要搜索什么来获得简明的教程.我想创建一个应用程序,并在Android Market上免费下载.然后,我想创建一个或多个应用程序,这些应用程序只是在免费应用程序上打开某些功能的许可证密钥.免费应用程序检查付费应用程序是否存在于设备上的最佳方式是什么?是否有一种简单的方法来检查包名称,还是我需要在付费应用程序中创建内容提供商,免费应用程序可以调用该内容提供商来检查有效性?
或者可能有一些全局内存空间(如应用程序中的首选项),所有应用程序都可以读/写.
我知道一个可行的解决方案,并且我可以轻松实现 - 让每个付费应用程序在首次启动时调用Web服务并注册该手机的IMEI.这可行,但需要互联网访问,这可能或可能不方便我的应用程序.
与大多数Android问题一样 - 不止一种方法可以给猫皮肤涂抹.我正在寻找你们认为最好(也是最安全)的方法.
我的申请中有3个活动:
Activity1 -> Activity2 -> Activity3
Run Code Online (Sandbox Code Playgroud)
在Activity3内部,如果用户按下Back,我想返回Activity2.在Activity3的onPause事件中,我添加了一个finish()声明.这可能甚至没有必要,但我想确保此活动得到清理.这很好用.
但是,在Activity3中,如果用户按Home或启动新应用程序(通过通知栏或其他方式),我希望Activity3和Activity2都完成.如果用户返回此应用程序,则应该使用Activity1继续.
我已经弄清楚如何做其中一个,但我无法弄清楚如何处理这两种情况,如果它甚至可能.我可以在Activity3中捕获"后退"按钮并将消息发送回Activity2,告诉它不要finish()?看起来活动遵循相同的生命周期流程(暂停,停止),无论您将它们发送到后台做什么.
只是为了回答我为什么要这种行为的问题,想象一下这Activity1是一个登录屏幕,Activity2是一个选择屏幕,并且Activity3是一个内容屏幕.如果我从内容页面按Back,我希望能够进行新的选择.如果我通过任何其他方式(主页,通知栏)退出,我希望用户"logged out".
在此先感谢您的帮助.