小编Tic*_*ink的帖子

Droid:如何从XML中描述的onClick方法获取按钮ID?

在开发指南之后,我可以在XML中使用按钮添加方法.这会在我的活动中调用'buttonPress'方法.如果我将相同的方法应用于多个按钮,如何确定已单击的按钮的标识?

android onclick

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

android:如何从触摸事件中获取文本位置

我想要实现一个自定义文本界面,触摸+拖动选择文本和键盘没有被提升,这与长按一下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()获取文本位置.有没有办法做到这一点?我在其他办公应用程序中看到了我想要的行为.

另外,在手动请求之前,如何停止键盘出现?

android selection android-edittext

8
推荐指数
3
解决办法
8770
查看次数

Android:如何在ICS中禁用选择放大镜?

在ICS的EditText视图中选择文本时,会在选区上方显示一个放大镜.任何人都知道如何禁用它?

在此输入图像描述

android android-edittext

8
推荐指数
1
解决办法
1618
查看次数

Android:如何在onDraw()中获取位图的缩放宽度

简单的问题,简单的答案不起作用.我有一个位图,我希望在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()在缩放后返回驻留位图的维度,这意味着没有明显的方法来获取位图的原始宽度.

android bitmap scale

5
推荐指数
1
解决办法
7563
查看次数

如何删除Google Play排行榜高分

我刚刚发布了我的游戏,我发现测试中的高分仍然是高分。如何删除/重置排行榜?

leaderboard google-play-services

5
推荐指数
1
解决办法
4423
查看次数

Droid:如何以编程方式重新排序linearlayouts内容?

我有一个带有按钮列表的滚动视图.我希望在首次使用该应用程序时在此列表的开头有说明,但是在用户使用它之后将指令移到结束屏幕,因为说明不再需要,但我仍然想要他们可以访问 我不知道从哪里开始!

编辑:按要求提供不同的解释.

我的主要布局有一张桌子.底行是Horizo​​ntalScrollView,包含一个LinearLayout,包含6个按钮.如果我们在.xml布局中按顺序调用这些按钮1,2,3,4,5,6,我希望代码能够将它们重新排序为"6,1,2,3,4,5" .

android button android-linearlayout

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

为什么 SystemClock.currentThreadTimeMillis() 似乎以半速运行?

我正在尝试编写一个能够与用户输入同步播放 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)

time android clock

3
推荐指数
1
解决办法
3400
查看次数

Android:如何在触摸事件中手动实现longpress?

简短版本:我想要一种方法在onTouchEvent上启动基于时间的计数器,并测试在响应之前是否已经过了一定的时间,作为手动LongTouch检测.

说明:我有一个自定义的imageView,可以在两指翻转的屏幕上滑入/滑出屏幕.我想向它添加拖动事件,但这些需要比长按更快.我可以通过使用每个onTouchEvent更新一次的计数器来延迟拖动事件,并且仅触发拖动,例如10次计数,但计数器仅更新触摸事件并且手指必须移动.

如何创建一个基于时间的计数器,一个活动级别字段,每秒递增60次或某些?

android timer long-press

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