在开发指南之后,我可以在XML中使用按钮添加方法.这会在我的活动中调用'buttonPress'方法.如果我将相同的方法应用于多个按钮,如何确定已单击的按钮的标识?
我想要实现一个自定义文本界面,触摸+拖动选择文本和键盘没有被提升,这与长按一下CCP菜单和键盘的默认行为形成对比.我的理解表明我需要这种方法:
onTouchEvent(event){
case touch_down:
get START text position
case drag
get END text position
set selection range from START to END
}
Run Code Online (Sandbox Code Playgroud)
我已经发现所有关于getSelectStart()以及设置范围等的各种方法,但我找不到如何根据触摸事件getX()和getY()获取文本位置.有没有办法做到这一点?我在其他办公应用程序中看到了我想要的行为.
另外,在手动请求之前,如何停止键盘出现?
在ICS的EditText视图中选择文本时,会在选区上方显示一个放大镜.任何人都知道如何禁用它?

简单的问题,简单的答案不起作用.我有一个位图,我希望在onDraw()方法中为系统显示不同DPI屏幕的尺寸.bitmap.width()成功返回其未缩放的宽度.但是,bitmap.getScaledWidth()返回零.我尝试过getScaledWidth(canvas)和getScaledWidth(canvas.getDensity()),但都返回0.确实,canvas.getDensity()返回零,所以我甚至无法手动计算它.
我究竟做错了什么?
更详细一点.我正在使用自定义视图.位图在类中声明并在构造函数中加载.
编辑:
我发现使用:
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);
Run Code Online (Sandbox Code Playgroud)
bitmap.getScaledHeight(metrics)返回与bitmap.getHeight()相同的值.
似乎bitmap.getWidth()在缩放后返回驻留位图的维度,这意味着没有明显的方法来获取位图的原始宽度.
我刚刚发布了我的游戏,我发现测试中的高分仍然是高分。如何删除/重置排行榜?
我有一个带有按钮列表的滚动视图.我希望在首次使用该应用程序时在此列表的开头有说明,但是在用户使用它之后将指令移到结束屏幕,因为说明不再需要,但我仍然想要他们可以访问 我不知道从哪里开始!
编辑:按要求提供不同的解释.
我的主要布局有一张桌子.底行是HorizontalScrollView,包含一个LinearLayout,包含6个按钮.如果我们在.xml布局中按顺序调用这些按钮1,2,3,4,5,6,我希望代码能够将它们重新排序为"6,1,2,3,4,5" .
我正在尝试编写一个能够与用户输入同步播放 MIDI 文件的音乐应用程序。我已经创建了自定义视图、播放声音和读取 MIDI 数据。我在视图的 onDraw() 方法中运行 MIDI 数据的回放,以便我可以将用户输入应用于它。音符数据存储为一组音符音高和播放时间,以毫秒为单位。
我的测试数据每 500 毫秒(半秒)播放一个不同音高的音符。我在每个音符的时间间隔旁边记录 currentThreadTimeMillis(),正如我所期望的那样。每 500 个小节,播放一个音符。然而,这个以毫秒为单位的计数大约是实际速度的一半,需要一秒钟来计算 500 毫秒!我在 Galaxy Ace 上运行,所以这不是慢速模拟器的问题。
SystemClock.currentThreadTimeMillis() 为什么要花两秒钟的时间来计算 1000 毫秒?
public void onDraw(Canvas canvas) {
// TODO : Draw notes
canvas.drawColor(Color.BLACK);
canvas.drawBitmap(aNote.img, aNote.x, aNote.y, null);
if (ready>0){
elapsed_time = SystemClock.currentThreadTimeMillis() - start_time;
midi_note_data = MIDI.track_data.get(current_note);
if (midi_note_data.start_time <= elapsed_time){
current_note++;
pitch = midi_note_data.pitch;
Log.d("MUSIC", "Note time " + midi_note_data.start_time + " ThreadTime "+ elapsed_time);
sounds.play(tone, 1.0f, 1.0f, 0, 0, notes[pitch]);
}
if (current_note > MIDI.track_data.size()-1){
ready …Run Code Online (Sandbox Code Playgroud) 简短版本:我想要一种方法在onTouchEvent上启动基于时间的计数器,并测试在响应之前是否已经过了一定的时间,作为手动LongTouch检测.
说明:我有一个自定义的imageView,可以在两指翻转的屏幕上滑入/滑出屏幕.我想向它添加拖动事件,但这些需要比长按更快.我可以通过使用每个onTouchEvent更新一次的计数器来延迟拖动事件,并且仅触发拖动,例如10次计数,但计数器仅更新触摸事件并且手指必须移动.
如何创建一个基于时间的计数器,一个活动级别字段,每秒递增60次或某些?