标签: compatibility

Android:Tint使用DrawableCompat

我试图在Android API级别21之前对图像进行着色.我已成功使用以下项目着色项目:

<android:tint="@color/red"/>
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法弄清楚如何通过ImageView上的代码执行此操作:

Drawable iconDrawable = this.mContext.getResources().getDrawable(R.drawable.somedrawable);
DrawableCompat.setTint(iconDrawable, this.mContext.getResources().getColor(R.color.red));
imageView.setImageDrawable(iconDrawable);
Run Code Online (Sandbox Code Playgroud)

我已经尝试过设置TintMode,但这似乎没有什么不同.我是否错误地使用了v4兼容类DrawableCompat?

compatibility android tint

48
推荐指数
5
解决办法
3万
查看次数

print中的println vs System.out.println

我一直认为这Predef.println只是一个捷径System.out.println,但显然我错了,因为它似乎根本没用System.out.为什么会这样?我怎样才能System.out在Scala中进行下面的"重定向" ?

scala> val baos = new java.io.ByteArrayOutputStream
baos: java.io.ByteArrayOutputStream = 

scala> val ps = new java.io.PrintStream(baos)
ps: java.io.PrintStream = java.io.PrintStream@6c5ac4

scala> System.setOut(ps)

scala> println("hello")
hello

scala> new String(baos.toByteArray)
res2: java.lang.String = ""

scala> System.out.println("hello")

scala> new String(baos.toByteArray)
res7: java.lang.String = 
"hello
"
Run Code Online (Sandbox Code Playgroud)

compatibility scala println

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

Blob下载在IE中不起作用

我在我的Angular.js控制器中有下载CSV文件:

 var blob = new Blob([csvContent.join('')], { type: 'text/csv;charset=utf-8'});
 var link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
 link.href = URL.createObjectURL(blob);
 link.download = 'teams.csv';
 link.click();
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome,但不适用于IE.浏览器控制台日志说:

HTML7007:通过关闭为其创建的blob来撤消一个或多个blob URL.这些URL将不再解析,因为已释放支持URL的数据.

它是什么意思,我该如何解决?

javascript compatibility internet-explorer blob angularjs

45
推荐指数
5
解决办法
6万
查看次数

主题不适用于Android上的DialogFragment

我正在将旧的Dialogs切换到DialogFragment,但主题和样式似乎不起作用.

我正在使用兼容性库v4中的DialogFragment,而在onCreate方法中我尝试调用setStyle(style,theme); 有很多不同的主题,但对话框总是显示为运行Android 4.0.3的模拟器中的"旧"对话框(即,它没有在Holo主题中显示).

还有什么我应该做的吗?使用兼容性库是否会禁用Holo主题或其他内容?如果是这种情况,我应该创建两个DialogFragments,一个用于旧版本,一个用于较新版本?

谢谢!


这是我的对话框的(简化)代码.我已经尝试了Theme_Holo_Dialog_NoActionBar和Theme_DeviceDefault_Dialog_NoActionBar,但Android 4模拟器始终将对话框显示为"旧"对话框,而不是使用Holo主题.我究竟做错了什么?:(

[...]
import android.support.v4.app.DialogFragment;
[...]

public class AlertDialogFragment extends DialogFragment {

  public static AlertDialogFragment newInstance(int id) {

    AlertDialogFragment f = new AlertDialogFragment();
    Bundle args = new Bundle();
    args.putInt("id", id);
    f.setArguments(args);

 }

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    int style = DialogFragment.STYLE_NORMAL, theme = 0;
    theme = android.R.style.Theme_Holo_Dialog_NoActionBar;
    setStyle(style, theme);     
  }

  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {

    mId = getArguments().getInt("id");
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
        .setTitle(mTitle)
        .setMessage(mMessage)
        .setPositiveButton(getString(R.string.btn_ok), new DialogInterface.OnClickListener() {      
            @Override
            public …
Run Code Online (Sandbox Code Playgroud)

compatibility android themes styles dialog

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

VB6在Windows 8上运行?

假设vb6不能在Windows 8上运行,因为Windows 8没有附带VB6运行时库,是不是可以在Windows 8上安装VB6运行时库然后再运行VB6?还是有另一个问题?

windows vb6 compatibility windows-8

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

定位框架真正意味着什么,以及如何最大化兼容性?

问候所有,

自从我第一次开始用C#编码以来,这让我很困惑.我的目标是创建一个程序集,该程序集将在用户拥有的最新.NET框架上运行,无论可能是什么.我不想要安装.NET 4,但是如果用户拥有它,我想使用它,更重要的是,如果用户只有 .NET 4而且下面没有任何内容,我希望它仍然有用.我开始怀疑这甚至不可能.

当我在Visual Studio中更改"目标框架"时,我真的不明白我在选择什么.这是否意味着"将与此版本兼容"?或者"只与这个版本兼容"?到目前为止似乎是后者; 我在虚拟机中的测试表明.NET 4目标程序集在没有.NET 4的情况下失败,而.NET 3.5目标程序集在没有.NET 3.5的情况下失败.有没有办法设置这个,所以我可以实现最大的兼容性?

更新:为了澄清,我有一个针对.NET 2的程序.这里的海报似乎表明它应该加载.NET 4.但是在只有.NET 4且之前没有任何东西的环境中,它无法加载.

UPDATE2:好的,想通了,但它比这里的海报似乎要复杂得多.我正在打开一个不同的问题来讨论错综复杂的问题,但简短的版本是,<supportedRuntime version="v4.0" />如果你想在.NET 4上运行非.NET 4程序集,你需要一个app.config .如果没有它,它们将无法加载.

.net c# compatibility assemblies backwards-compatibility

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

有效最大mailto:体长

mailto:链接的&body部分中的文本有最大长度.根据我的一位同事的说法,W3C将限制发布为256(尽管如此,我没有提供支持的链接).

我们在电子邮件和网页中嵌入了mailto:links,并成功使用了超过256个字符.但是,在某一点之后,电子邮件客户端和浏览器开始剥离并拒绝打开链接.

我想知道以下允许的实际最大长度:

邮件客户:

  • 展望(2003年,2007年,2010年)
  • Eudora(7.1,和/或最新版本)
  • 雷鸟(最新版)

浏览器:

  • Firefox(3+)
  • IE浏览器(6,7,8)
  • iPhone浏览器

我们将非常感谢您提供的任何和所有号码.

mailto compatibility email-client cross-browser multiple-browsers

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

如何让gradle在maven用户的项目根目录下生成有效的pom.xml文件?

虽然现在只有两天了,我肯定会在所有Java项目中使用gradle销售,并从我所有项目的根目录中删除pom.xml.

但是,我希望保持maven兼容,因为我希望gradle任务能够在用户需要时在项目的根目录下生成合适的pom.xml.

此时,我对pom.xml的唯一引用是在build.gradle文件的这一部分中(这是很少的修改,这里有什么):

uploadArchives {
    repositories {
        mavenDeployer {
            beforeDeployment {
                MavenDeployment deployment -> signing.signPom(deployment);
            }

            repository(url: sonatypeRepoURI) {
                authentication(userName: sonatypeUsername,
                    password: sonatypePassword);
            }

            pom.project {
                name "${name}";
                packaging "bundle";
                description "${description}";
                url "${projectURL}";

                scm {
                    url "${gitroscm}";
                    connection "${gitroscm}";
                    developerConnection "${gitrwscm}";
                }

                licenses {
                    license {
                        name "Lesser General Public License, version 3 or greater";
                        url "http://www.gnu.org/licenses/lgpl.html";
                        distribution "repo";
                    }
                }

                developers {
                    developer {
                        id "whocares";
                        name "whocares";
                        email "whocares";
                    }
                }
            }
        }
    }
} …
Run Code Online (Sandbox Code Playgroud)

java compatibility gradle maven

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

处理新版Android(3.x及更高版本)中缺少的MENU按钮

我是Android <3.0中使用的菜单按钮的粉丝,因为它对我的游戏应用程序非常有用 - 它允许我采取重要但游戏玩法无关的功能(保存游戏,参考信息链接)并将其放置在它的某个地方没有弄乱主游戏界面,但仍然很容易访问(选项菜单).

这种键的使用成为3.0的问题,因为它删除了MENU按钮并用Action Bar替换它.动作栏真的不适合喜欢全屏运行的游戏,所以这真的很痛苦.没有操作栏 - 无法访问选项菜单.但是,我可能暂时忽略它,因为我在平板电脑上没有那么多用户,并且没有时间来测试它.

然而,ICS使这成为一个严重的问题,因为MENU按钮显然没有回来.现在我不仅要在平板电脑上处理这个问题,还要在手机上处理这个问题.

我对此问题的初步解决方案是在我的GUI中放置一个软按钮来替换硬菜单按钮

this.openOptionsMenu();
Run Code Online (Sandbox Code Playgroud)

一切都恢复到ICS的完美运作.

但是,这对Honeycomb不起作用.如果您没有可见的ActionBar,则调用openOptionsMenu绝对没有任何作用.

有关如何处理这个的任何想法?

  • 我想我总是可以回到使用TargetSDK <11(从而迫使ActionBar出现在平板电脑上),但据我所知,这只是将问题推向未来,我不愿意这样做.

  • 完全删除选项菜单,然后转到仅使用上下文菜单?[澄清:我的意思是,不是打开选项菜单 - 我只使用上下文菜单 - 至少现在 - 这些工作在所有设备上].

有兴趣听听其他人在整个选项菜单/ ActionBar混乱中遇到类似问题的决定.

compatibility android android-3.0-honeycomb android-4.0-ice-cream-sandwich android-4.2-jelly-bean

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

arm64-v8a与armeabi-v7a兼容吗?

对于我的Android应用程序,我现在正在使用ABI"x86"和"armeabi".armeabi用于所有ARM设备,包括armv7a和arm64-v8a.

现在我想删除"armeabi"并继续使用"x86"和"armeabi-v7a".

我没有在文档中找到任何提示,ARMv8也与ARMv7兼容 - 任何人都可以确认我的应用程序仍然可以在运行arm64-v8a的设备上运行,如果我不提供armeabi但现在是armeabi-v7a图书馆?

compatibility android abi

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