我正在尝试添加一个UIBarButtonItem包含UIImagea UIToolbar.图像不断被着色,我无法将其显示为原始彩色图像 - 我想要做的就是逐字显示图像UIBarButtonItem!我按照iOS 7过渡指南中的说明将图像渲染模式设置为UIImageRenderingModeAlwaysOriginal.
UIImage *image = [UIImage imageNamed:@"myImage.png"];
image = [image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
UIBarButtonItem *ratingImage = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStyleBordered target:nil action:nil];
[toolbar setItems:[NSArray arrayWithObjects:ratingImage, nil] animated:YES];
Run Code Online (Sandbox Code Playgroud)
有一点需要注意的是,当我加载时,我为我的应用程序的主UIWindow设置了tintColor ...也许这对我的问题并不重要,但我想我会提到它.
最后更新
原始问题
使用旧版Google Maps Android API,我能够捕获谷歌地图的屏幕截图,通过社交媒体分享.我使用以下代码捕获屏幕截图并将图像保存到文件中并且效果很好:
public String captureScreen()
{
String storageState = Environment.getExternalStorageState();
Log.d("StorageState", "Storage state is: " + storageState);
// image naming and path to include sd card appending name you choose for file
String mPath = this.getFilesDir().getAbsolutePath();
// create bitmap screen capture
Bitmap bitmap;
View v1 = this.mapView.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
OutputStream fout = null;
String filePath = System.currentTimeMillis() + ".jpeg";
try
{
fout = openFileOutput(filePath,
MODE_WORLD_READABLE);
// Write the string …Run Code Online (Sandbox Code Playgroud) 我正在使用ACRA(arca.ch)生成自动错误报告.
我刚刚使用Google Maps Android API v2发布了我的应用的新版本.当我试图显示GooglePlayServicesUtil.getErrorDialog返回的对话框时,EEEPad和Transformer Pad用户报告了一个错误.有谁知道为什么会这样?
以下是acra报告的相关代码和Logcat:
在调用此行时:
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(resultCode != ConnectionResult.SUCCESS)
{
//The dialog that comes back is null (probably due to the logcat message)
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 69);
//So when I call the next line, the app crashes with a NullPointerException
dialog.show();
}
...
Run Code Online (Sandbox Code Playgroud)
logcat的:
12-18 04:21:04.531 W/GooglePlayServicesUtil( 3977): Google Play Store signature invalid.
12-18 04:21:04.551 E/GooglePlayServicesUtil( 3977): Google Play services is invalid. Cannot recover.
Run Code Online (Sandbox Code Playgroud)
提前感谢您提供的任何帮助.
更新
谷歌还没有解决这个问题,一旦听到任何消息我就会更新这个问题(参见CommonsWare对Google Bug报告链接的回答).与此同时,如果您遇到此问题并且不希望您的应用程序崩溃,那么这就是我目前正在做的事情:
public …Run Code Online (Sandbox Code Playgroud) android google-maps google-play-services google-maps-android-api-2
我正在更新现有的Android应用以使用新的Google Maps Android API v2.我有大约2500个标记要添加到地图中.使用旧版本的API,我发现当有2500个标记时,地图的响应性是可怕的,所以我不得不通过添加位于地图当前可见区域的标记来解决它.
我希望使用新的API可以更快地使用2500个标记,但它仍然很糟糕,即使在Nexus 4上也是如此,我没有看到任何类型的聚类选项.
所以我的问题是:如何确定某个纬度/经度点是否包含在地图的可见区域内?
我在文档中查看了VisibleRegion,但到目前为止我还没有运气.任何帮助是极大的赞赏.
*旁注:即使使用iPhone 3gs,iOS MKMapView(谷歌地图或Apple地图)上的2500个标记也非常流畅和响应.我仍然无法理解为什么它在Android上如此之慢,即使使用最新最好的硬件也是如此.
在iOS 8中,似乎按钮UIAlertController(特别是动作表类型)以及UIActivityViewController从主窗口的tintColor获取颜色的按钮.
如何更改按钮文本的颜色?我试过使用这样的外观代理:
[[UIButton appearanceWhenContainedIn:[UIActivityViewController class], nil] setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
Run Code Online (Sandbox Code Playgroud)
但它没有效果.我的窗口的tintColor是白色的,因此UIActivityViewController按钮上的文本也是白色的,无法看到.更改我的窗口的tintColor解决了这个问题,但它弄乱了应用程序的其余部分.
UIActivityViewController通过底部带有白色文本的白色取消按钮查看我的屏幕截图:

同样的事情适用于UIActionSheet(是的,我知道它已被弃用)和带有actionSheet类型的UIAlertController.
如何在不更改整个应用程序的tintColor的情况下使这些窗口上的文本可读?提前致谢!
使用Google Maps Android API V2时,我会按照Google Play服务设置文档进行检查,以确保安装了Google Play服务,并在我的主要活动中使用以下代码:
@Override
public void onResume()
{
checkGooglePlayServicesAvailability();
super.onResume();
}
public void checkGooglePlayServicesAvailability()
{
int resultCode = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this);
if(resultCode != ConnectionResult.SUCCESS)
{
Dialog dialog = GooglePlayServicesUtil.getErrorDialog(resultCode, this, 69);
dialog.setCancelable(false);
dialog.setOnDismissListener(getOnDismissListener());
dialog.show();
}
Log.d("GooglePlayServicesUtil Check", "Result is: " + resultCode);
}
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,我注意到我已经存在的一些较旧的Android手机(大多数运行2.2)都缺少GooglePlayServices以及Google Maps应用程序本身.
LogCat将报告此错误:Google Maps Android API:Google地图应用程序丢失.
问题 - 如何在设备上对Google地图的可用性执行类似的检查?其次,如果用户已经安装了Google地图,我认为检查需要确保其安装的版本与Android Maps API的V2兼容.
更新 这是我的setupMapIfNeeded()方法,它在onCreate()的末尾被调用.这是我认为我想确定是否已安装Google地图并提醒用户的地方,请参阅else块:
private void setUpMapIfNeeded()
{
// Do a null check to confirm that we have not already instantiated the map.
if …Run Code Online (Sandbox Code Playgroud) 我见过另一个关于使用green dao进行模式升级/迁移的问题(这里)
在该答案中有许多链接可用于在进行模式升级时使用的良好模式 - 但是没有关于您实际对数据进行的操作的示例,以便正确地迁移它并且我无法找到任何内容.
在我的情况下,我的迁移非常简单 - 我不希望转换任何现有数据,我只需要在我的模式中添加一些新表,我怀疑这是一种相当常见的情况.
在不删除用户已保存的数据的情况下,将新表添加到架构的最简单方法是什么?非常感谢一个具体的例子.
如果greenDao提供了一个类似于DevOpenHelper的类,它将简单地添加先前不存在于模式中的新表/列而不先删除现有的tabes/data,这将是非常棒的.
我在想,如果有一种机制的图像显示一个旋转的"不确定"进度,而它的加载与通用图像装载机.
现在,我使用DisplayImageOptions的showStubImage()选项来显示,上面写着"无图像",而图像被下载的图像,但是这将是非常漂亮的期待,如果有上ImageView的,而顶部的旋转不确定进度图像正在下载.
我刚刚拿到了闪亮的新Nexus 7并且正在玩Cordova(Phonegap).我创建了一个包含几个文本输入字段和文本区域的简单页面.在我的iPhone上,我可以单击文本字段,键盘出现,我可以编辑文本.在运行4.1.1 Jelly Bean和Cordova 1.9.0的Nexus 7上,键盘出现,但是当您键入时,文本字段或文本区域中没有显示任何内容.
我很确定我的代码很好,因为它可以在iPhone和Android 2.3.5上运行,但是以下是有问题的代码片段以防万一:
<body onload="onBodyLoad()">
<div data-role="page" id="mainpage">
<div data-role="header" data-theme="a">
<h2>Lightweight</h2>
</div>
<div data-role="content">
<div>
<a href="#" data-role="button" data-icon="check" data-iconpos="bottom" data-theme="b" onClick=onClickInterrogate()>Interrogate</a>
</div>
<div align="center">
<a href="#" data-role="button" data-inline="true" data-icon="forward" data-theme="b" onClick=downloadFile()>Send</a>
<a href="#" data-role="button" data-inline="true" data-icon="gear" data-iconpos="right" data-theme="b" onClick=onClickSettings()>Settings</a>
</div>
<div align="center">
<label for="serverUrl">Server URL:</label>
<input type="text" name="name" id="serverUrl" value="urlGoesHere"/>
<label for="zipFile">Zip File:</label>
<input type="text" name="name" id="zipFile" value="tran1.zip"/>
</div>
<div data-role="fieldcontain">
<label for="textarea">Textarea:</label>
<textarea name="textarea" id="textarea">urlGoesHere</textarea>
</div>
</div>
<div data-role="footer">
<h1> © 2012 …Run Code Online (Sandbox Code Playgroud) 当我CGFontCreateWithDataProvider 在飞机模式下拨打电话时,我的应用会冻结.不是飞机模式,它工作正常.字体存储在设备上,不应该发生网络访问.
在调用此方法加载本地字体文件时:
[self registerIconFontWithURL:[[NSBundle mainBundle] URLForResource:@"FontAwesome" withExtension:@"otf"]];
Run Code Online (Sandbox Code Playgroud)
的值url在下面的方法是:
文件:///var/mobile/Applications/48D3DA14-235B-4450-A081-7A6BA6116667/Blah.app/FontAwesome.otf
+ (void)registerIconFontWithURL:(NSURL *)url
{
NSAssert([[NSFileManager defaultManager] fileExistsAtPath:[url path]], @"Font file doesn't exist");
CGDataProviderRef fontDataProvider = CGDataProviderCreateWithURL((__bridge CFURLRef)url);
//******Freezes after the next line******
CGFontRef newFont = CGFontCreateWithDataProvider(fontDataProvider);
//******FROZEN******
CGDataProviderRelease(fontDataProvider);
CFErrorRef error;
CTFontManagerRegisterGraphicsFont(newFont, &error);
CGFontRelease(newFont);
}
Run Code Online (Sandbox Code Playgroud)
iOS 7.1.x,iPhone 5.
我不知道为什么会发生这种情况并且无法找到任何帮助.有没有人知道为什么会发生这种情况?
提前致谢!