小编Dis*_*Dev的帖子

带UIImage的UIBarButtonItem始终着色iOS 7

我正在尝试添加一个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 ...也许这对我的问题并不重要,但我想我会提到它.

objective-c uitoolbar uibarbuttonitem ios7

63
推荐指数
3
解决办法
2万
查看次数

捕获GoogleMap Android API V2的屏幕截图

最后更新

功能请求已由Google完成.请在下面看到这个答案.

原始问题

使用旧版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)

android android-mapview google-maps-android-api-2

47
推荐指数
3
解决办法
4万
查看次数

GooglePlayServicesUtil.getErrorDialog为null

我正在使用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

36
推荐指数
3
解决办法
2万
查看次数

添加大量标记后,Google Maps Android API v2速度非常慢

我正在更新现有的Android应用以使用新的Google Maps Android API v2.我有大约2500个标记要添加到地图中.使用旧版本的API,我发现当有2500个标记时,地图的响应性是可怕的,所以我不得不通过添加位于地图当前可见区域的标记来解决它.

我希望使用新的API可以更快地使用2500个标记,但它仍然很糟糕,即使在Nexus 4上也是如此,我没有看到任何类型的聚类选项.

所以我的问题是:如何确定某个纬度/经度点是否包含在地图的可见区域内?

我在文档中查看了VisibleRegion,但到目前为止我还没有运气.任何帮助是极大的赞赏.

*旁注:即使使用iPhone 3gs,iOS MKMapView(谷歌地图或Apple地图)上的2500个标记也非常流畅和响应.我仍然无法理解为什么它在Android上如此之慢,即使使用最新最好的硬件也是如此.

android-mapview google-maps-android-api-2

31
推荐指数
2
解决办法
2万
查看次数

iOS 8 UIActivityViewController和UIAlertController按钮文本颜色使用窗口的tintColor

在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通过底部带有白色文本的白色取消按钮查看我的屏幕截图:

带有白色取消按钮文本的UIActivityViewController

同样的事情适用于UIActionSheet(是的,我知道它已被弃用)和带有actionSheet类型的UIAlertController.

如何在不更改整个应用程序的tintColor的情况下使这些窗口上的文本可读?提前致谢!

objective-c tintcolor ios ios8

31
推荐指数
2
解决办法
2万
查看次数

Google Maps Android API V2会检查设备上是否安装了GoogleMaps

使用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)

android-mapview google-maps-android-api-2

29
推荐指数
1
解决办法
2万
查看次数

greenDao架构升级

我见过另一个关于使用green dao进行模式升级/迁移的问题(这里)

在该答案中有许多链接可用于在进行模式升级时使用的良好模式 - 但是没有关于您实际对数据进行的操作的示例,以便正确地迁移它并且我无法找到任何内容.

在我的情况下,我的迁移非常简单 - 我不希望转换任何现有数据,我只需要在我的模式中添加一些新表,我怀疑这是一种相当常见的情况.

在不删除用户已保存的数据的情况下,将新表添加到架构的最简单方法是什么?非常感谢一个具体的例子.

如果greenDao提供了一个类似于DevOpenHelper的类,它将简单地添加先前不存在于模式中的新表/列而不先删除现有的tabes/data,这将是非常棒的.

orm android greendao

26
推荐指数
3
解决办法
2万
查看次数

使用Universal Image Loader加载图像时显示不确定的ProgressBar

我在想,如果有一种机制的图像显示一个旋转的"不确定"进度,而它的加载与通用图像装载机.

现在,我使用DisplayImageOptions的showStubImage()选项来显示,上面写着"无图像",而图像被下载的图像,但是这将是非常漂亮的期待,如果有上ImageView的,而顶部的旋转不确定进度图像正在下载.

universal-image-loader

18
推荐指数
1
解决办法
1万
查看次数

无法使用Cordova 1.9.0和Android Jelly Bean编辑输入类型="text"或textarea

我刚刚拿到了闪亮的新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> &copy; 2012 …
Run Code Online (Sandbox Code Playgroud)

android cordova

15
推荐指数
1
解决办法
2万
查看次数

CGFontCreateWithDataProvider在飞行模式下挂起

当我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.

我不知道为什么会发生这种情况并且无法找到任何帮助.有没有人知道为什么会发生这种情况?

提前致谢!

fonts objective-c freeze ios

11
推荐指数
1
解决办法
1690
查看次数