我在这里找到了一个示例项目,用于向Android项目添加“调节旋钮”:

http://go-lambda.blogspot.com/2012/02/rotary-knob-widget-on-android.html

总的来说,它运行良好。我的项目与示例有一些不同,但是最重要的是,我以编程方式(没有XML)向显示添加了旋钮小部件和“完成”按钮,如下所示:

activity.getWindowManager().getDefaultDisplay().getMetrics (app.metrics);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams
    (300, RelativeLayout.LayoutParams.WRAP_CONTENT);

lp.topMargin            = 100;
lp.bottomMargin         = 598;
lp.leftMargin           = 50;
lp.rightMargin          = 348;

lp.height               = 300;
lp.width                = 300;

activity.addView (knob, lp);

lp = new RelativeLayout.LayoutParams (RelativeLayout.LayoutParams.WRAP_CONTENT,
    RelativeLayout.LayoutParams.WRAP_CONTENT);

int top = (int)(0.75 * app.metrics.heightPixels) - 40;
lp.topMargin            = top - 100;
lp.leftMargin           = 150;
lp.rightMargin          = 100;

act.addView (b1, lp);
knob.requestFocus();


我喜欢图形的显示方式和位置(大部分时间),但是问题是,当旋钮旋转时,它似乎没有围绕其中心旋转,结果左右摆动(向上摆动) -和-向下)。它不会影响重要的内容,但是看起来很有趣,我想修复它。

最佳答案

最终,问题很简单(同时又很烦人)。示例项目提供的png文件是一个正方形,其中旋钮的图片未居中于正方形。我的Android应用程序显然没有旋转旋钮,而是旋转了png方形文件。真正令人讨厌的部分是(1)查找替换文件或(2)修复原始文件有多困难。幸运的是,我发现有人为项目2提供了适当的工具。我的建议:如果您需要在项目中做类似的事情,那么我建议的网站会非常有帮助,但是您需要依靠或修复实际情况。

10-08 18:17