我刚用eclipse做了一个控制透明度的小程序,请问里边的0x0,0xff分别是啥意思啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我刚用eclipse做了一个控制透明度的小程序,请问里边的0x0,0xff分别是啥意思啊相关的知识,希望对你有一定的参考价值。

private static final String TAG="keyevent";
private ImageView mImage;
private TextView textView;
private int mAlphValue;

@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

mImage = (ImageView)findViewById(R.id.image);
textView = (TextView)findViewById(R.id.alphvalue);
mAlphValue= 100;
textView.setText("Alph = "+mAlphValue/0xff+"%");


@Override
public boolean onKeyDown(int keyCode,KeyEvent msg)
Log.v(TAG,"onKeyDown:keyCode="+keyCode);
Log.v(TAG,"onKeyDown:String="+msg.toString());
switch(keyCode)
case KeyEvent.KEYCODE_DPAD_UP:
case KeyEvent.KEYCODE_DPAD_RIGHT:
mAlphValue+=20;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
case KeyEvent.KEYCODE_DPAD_LEFT:
mAlphValue-=20;
break;
default:
break;

if(mAlphValue>=0xff)
mAlphValue=0xff;
if(mAlphValue<=0x0)
mAlphValue=0x0;
mImage.setAlpha(mAlphValue);
textView.setText("Alph = "+mAlphValue*100/0xff+"%");
return super.onKeyDown(keyCode, msg);

0x开头的是十六进制数字,在android的颜色中,有一个ARGB,A就表示是Alpha了(RGB分别就是红、绿、蓝的颜色值,及三原色),每一个值都是0~255之间的值,用两位的十六进制数字就可以表示,所以颜色值一般都用十六进制来表示,其实0x0和0xff就是两个极限值,相当于十进制的0和255. 参考技术A 那是16进制的数

windows下使用mingw/gdb无法调试eclipse helios cdt上的小程序,控制台死机

【中文标题】windows下使用mingw/gdb无法调试eclipse helios cdt上的小程序,控制台死机【英文标题】:can't debug small program on eclipse helios cdt using mingw/gdb under windows, console freezes 【发布时间】:2011-08-25 15:58:39 【问题描述】:

我一直在尝试使用 Eclipse CDT 来做一些 c++ 示例,我可以使用 run 命令很好地运行它们,但是每当我尝试调试时,控制台窗口就会冻结,我可以输入,但是程序无法继续。

当我调试时,我在控制台窗口上得到以下输出(没有断点,但由于默认设置而在 main 上中断):

Hello, world
put your name: 15^running

当我输入内容并点击 enter 时,继续按钮被禁用并且不执行任何操作。 15 是一个随机数,有时是 16、20 等。

如果我在 eclipse 下运行程序,我会得到输入提示就好了:

Hello, world
put your name: test
Hello test

这是我尝试调试的代码:

#include <iostream>
#include <string>

int main() 
    std::cout << "Hello, world" << std::endl;
    std::string name;
    std::cout << "put your name: ";
    std::cin >> name;
    std::cout << "Hello " + name << std::endl;
    return 0;

我的路径变量:C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Program Files\Java\jdk1.6.0_14\bin;C:\MinGW\bin

Eclipse 版本:Helios Service Release 2 CDT版本:7.0.2 操作系统:windows xp GDB 版本:GNU gdb (GDB) 7.2

如何在 CDT 下调试这个小例子,没有问题?

【问题讨论】:

【参考方案1】:

以下内容来自 Eclipse 网站的常见问题解答:

http://wiki.eclipse.org/CDT/User/FAQ#Eclipse_console_does_not_show_output_on_Windows

Eclipse 控制台在 Windows 上不显示输出 在 Eclipse CDT 上 Windows,正在运行或调试的程序的标准输出是完全 缓冲,因为它没有连接到 Windwos 控制台,而是连接到 管道。有关详细信息,请参阅错误 173732。在之后添加 fflush 调用 每个 printf 或在 main 开头添加以下行 功能:

setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);

似乎是 Windows 上的预期错误。

【讨论】:

【参考方案2】:

15^running 看起来是来自 gdb 的 Machine Interface 的结果记录。通常它不应该出现在 Eclipse 控制台中。

我建议尝试不同的 Create Process Launcher。可以通过以下方式更改:

    在主菜单中选择“运行”->“调试配置...”。

    在如下所示打开的“调试配置”窗口中,单击“使用 GDB (DSF) 创建进程启动器”对面的“选择其他...”。

    在如下所示打开的“选择首选启动器”窗口中选中“使用配置特定设置”,在下面的列表中选择“标准创建进程启动器”,然后单击确定。

    现在转到“调试配置”窗口中的调试器选项卡,选择调试器,例如“MinGW gdb”并点击应用。

使用标准创建流程启动器,我能够调试您的程序,尽管“输入您的姓名:”仅在我输入内容并按 Enter 后才会打印,因为输出流未刷新。

【讨论】:

谢谢 - 这也是我在 linux 上遇到的问题,当我尝试使用 gdb + eclipse 调试 mozilla 时。【参考方案3】:

试着看看这个http://www.cprogramming.com/gdbtutorial.html 看看是否有帮助。像你可以按CTRL-C打破吗?

虽然与苹果有关,但Cannot enter input with gdb. Help! 也可能是一个指针。

【讨论】:

我现在走得更远了,我认为这是 Windows 控制台没有弹出的问题。我现在正在看codelite,似乎在调试方面表现更好。

以上是关于我刚用eclipse做了一个控制透明度的小程序,请问里边的0x0,0xff分别是啥意思啊的主要内容,如果未能解决你的问题,请参考以下文章

刚用eclipse发现点不出方法和对象,点后面也不出现了的原因是啥?

windows下使用mingw/gdb无法调试eclipse helios cdt上的小程序,控制台死机

我做了个java的小程序, 用import 语句引入自己的包中所有类时总是报错

如何为博世 XDK110 暂停 ​​Eclipse 的控制台窗口

怎么给一个贴图创建透明通道

C#中的异常处理是怎么回事?我刚开始学C#,请各位能够帮助我.谢谢!