使enum类型表示一组字符串的最佳方法是什么?
我试过这个:
enum Strings{
STRING_ONE("ONE"), STRING_TWO("TWO")
}
Run Code Online (Sandbox Code Playgroud)
我怎么能用它们Strings呢?
我有一个ImageView显示png的宽高比比设备更大(垂直方向 - 意味着它更长).我希望在保持宽高比,匹配父级宽度以及将图像视图固定到屏幕顶部的同时显示它.
使用CENTER_CROP缩放类型时遇到的问题是,它(可理解)使缩放图像居中,而不是将顶边与图像视图的顶边对齐.
问题FIT_START是图像将适合屏幕高度而不是填充宽度.
我已经通过使用自定义ImageView解决了这个问题,onDraw(Canvas)并使用画布手动覆盖和处理此问题; 这种方法的问题是1)我担心可能有一个更简单的解决方案,2)super(AttributeSet)当在堆有3 mb空闲时尝试设置src img为330kb时,我在调用构造函数时遇到VM mem异常(堆大小为6 mb)并且无法解决原因.
任何想法/建议/解决方案都非常欢迎:)
谢谢
ps我认为解决方案可能是使用矩阵比例类型并自己做,但这似乎与我当前的解决方案相同或更多的工作!
我的一个应用程序出了问题,我想知道是否有人可以给我任何洞察可能导致它的原因.
我得到一个ClassNotFoundException,下面的重要一行是
E/AndroidRuntime(21982): Caused by: java.lang.ClassNotFoundException: couk.doridori.goigo.customUI.GoBoardView in loader dalvik.system.PathClassLoader@446fc3d0
Run Code Online (Sandbox Code Playgroud)
现在这个应用程序已经出来超过一年和2天前我有两个单独的用户联系我这个问题,一个在HTC野火(2.1)和一个三星Galaxy S(?).现在我无法在我的设备(2.2和1.6)或模拟器(2.1)上重新创建此问题,并且无法解决为什么类加载器无法找到此类的问题.我花了一段时间谷歌搜索无济于事,并希望有人有一些指针!它似乎只是在加载一个活动时,当设置了contentView时,它会尝试给View 扩展一个名为GoBoardView的自定义视图扩展View类,这只是做一些简单的画布绘图,并没有使用任何第三方库或任何其他类会有包名冲突或任何东西.
请帮忙!为了防止它出现构建问题,我正在通过eclipse更新我的所有SDK和ADT,因为它正在构建1.6并使用旧的ADT,但我不知道这是否有助于只是想值得一试.任何建议都会非常感谢!(见下面的编辑)
E/AndroidRuntime(21982): java.lang.RuntimeException: Unable to start activity ComponentInfo{couk.doridori.goigoFull/couk.doridori.goigoFull.Board}: android.view.InflateException: Binary XML file line #14: Error inflating class couk.doridori.goigo.customUI.GoBoardView
E/AndroidRuntime(21982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
E/AndroidRuntime(21982): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
E/AndroidRuntime(21982): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
E/AndroidRuntime(21982): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
E/AndroidRuntime(21982): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(21982): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(21982): at android.app.ActivityThread.main(ActivityThread.java:4603)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(21982): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(21982): Caused by: android.view.InflateException: Binary XML file …Run Code Online (Sandbox Code Playgroud) 我想在使用RetroFit和时模拟无网络案例MockWebServer.
我正在测试使用Espresso和提供MockWebServers url到RestAdapter我开始测试之前.这非常适合模拟服务器响应等等,但是我无法看到一种简单的方法来编写java.net.ConnectException设备没有网络时引发的异常的脚本.我可以看到MockResponse允许限制模拟等,但不是自定义异常.
我知道我可以嘲笑使用的实际web api接口,retrofit但是如果可能的话,我想使用与其他测试相同的方法MockWebServer.
我想我只是错过了一些简单的东西:)
谢谢
今天一个简单的问题......
在Eclipse比较编辑器(右键点击文件 - 用比较...)是什么"下一个差异"和"下一个变化"按钮之间的区别?他们似乎完全一样.
它烦我!
谢谢
我希望有人可以帮助我为我的eclipse项目生成一个javadoc.当我从项目菜单中选择"生成Javadoc"时,我会遇到很多错误
cannot find symbol
symbol : class ListView
Run Code Online (Sandbox Code Playgroud)
每次引用Android API类的类,所以我只为不引用任何android api的类输出Javadocs.我的应用程序编译并正确运行,并且在项目设置中存在Android 1.6 lib(在构建路径 - 外部jar部分).
什么想法我做错了什么?
谢谢.
大道
我正在学习C并找到某人定义了一个结构体,它的结构名称在它前面有_.这是我第一次看到它,有人可以告诉我一点吗?为什么有人会使用_aStructName而不是aStructName,有什么好处?
struct _huffmanNode {
int value;
uint32_t frequency;
int hasChild;
struct _huffmanNode *child[2];
struct _huffmanNode *next;
};
Run Code Online (Sandbox Code Playgroud)
同样地,我发现有人在以下代码中使用这种命名约定:
typedef struct HuffCode_ {
unsigned char used;
unsigned short code;
unsigned char size;
} HuffCode;
Run Code Online (Sandbox Code Playgroud) 我正在玩Android Studio和Gradle,并且对gradle-aware make实际操作非常感兴趣.我感兴趣的原因是我最初的印象是新AS项目默认的默认运行配置gradle-aware make运行gradle assembledebug命令(在构建期间查看AS底部的状态显示app:assembleDebug任务正在运行)然后一些安装和运行命令.
但是,在测试已安装系统gradle版本为1.9并且项目设置为1.10的包装器的计算机上,我得到以下内容
在我看来,AS Run如果gradle-aware make使用上述应该失败gradle assembledebug
看看src我可以看到MakeBeforeRunTaskProvider.java类和相关的提交,但是我看不到相关的信息
我敢肯定,对于谁先看到它,这是一个简单的!
为什么Java中的代码就像
long one = 1 << 0;
long thirty = 1 << 30;
long thirtyOne = 1 << 31;
long thirtyTwo = 1 << 32;
System.out.println(one+" = "+Long.toBinaryString(1 << 0));
System.out.println(thirty+" = "+Long.toBinaryString(1 << 30));
System.out.println(thirtyOne+" = "+Long.toBinaryString(1 << 31));
System.out.println(thirtyTwo+" = "+Long.toBinaryString(1 << 32));
Run Code Online (Sandbox Code Playgroud)
打印
1 = 1
1073741824 = 1000000000000000000000000000000
-2147483648 = 1111111111111111111111111111111110000000000000000000000000000000
1 = 1
Run Code Online (Sandbox Code Playgroud)
这对我来说没有意义.long是一个64位数字 - 而它似乎像int上面的一样.我知道bithifted bytes经过int促销,但我不知道在这种情况下会发生什么.
关于这里发生的任何指示都会很好:)
谢谢
编辑:感谢所有的答案 - 我一看到'提交'就意识到发生了什么但是SO进入readonly模式我无法删除!非常感谢!
我有一个覆盖ViewGroup,它是我想用来在用户与应用程序交互时显示效果的屏幕大小,但仍然将onTouch事件传递给任何底层视图.
我对所有MotionEvent(不只是DOWN)感兴趣,所以onInterceptTouchEvent()在这里不适用,好像我返回true我的覆盖将消耗所有事件,如果false将只接收DOWN事件(同样适用于onTouch).
我以为我可以覆盖Activitys dispatchTouchEvent(MotionEvent ev)并在我的叠加层中调用自定义触摸事件,但这具有不根据我的视图位置转换输入坐标的效果(例如,所有事件将通过似乎是发生在实际触摸之下20左右,因为不考虑系统条).