GVKun编程网logo

Android – 计算弧角(手机计算弧度的软件)

8

在本文中,我们将详细介绍Android–计算弧角的各个方面,并为您提供关于手机计算弧度的软件的相关解答,同时,我们也将为您带来关于71道经典Android面试题和答案_android面试题库,andr

在本文中,我们将详细介绍Android – 计算弧角的各个方面,并为您提供关于手机计算弧度的软件的相关解答,同时,我们也将为您带来关于71道经典Android面试题和答案_android面试题库,android面试题-Android文档类资源-CSDN下载、android @android:Theme.Dialog 和 @android:Widget.Button找不到、Android Emulator 是否包含 Android SDK 或 Android Studio?、Android Studio – 使用依赖于另一个Android库的Android库构建Android项目的有用知识。

本文目录一览:

Android – 计算弧角(手机计算弧度的软件)

Android – 计算弧角(手机计算弧度的软件)

我有一个圆弧,我希望在0度,45度,90度,135度,180度绘制刻度标记,是否有人可以帮助我获得在此草图上获得点5和点30的x,y所需的数学?

这是我绘制1刻度标记的代码.

private void drawScale(Canvas canvas) {
        //canvas.drawoval(scaleRect,scalePaint);

        canvas.save();

        Paint p = new Paint();
        p.setColor(Color.WHITE);
        p.setstrokeWidth(10f);
        canvas.drawLine(rectF.left-getWidth()/20,rectF.height()/2,rectF.left,p);


    canvas.restore();
}

解决方法

您可以使用sin和cos计算其旋转.让我们假设您有零点A,并希望将其旋转到旋转30°的B点.
像这样的东西:

基本上新点是(cx x,cy y).在这个特殊情况下,sin和cos的定义将是下一个:

sin = x/R
cos = y/R

获得精确的x和y并不难.因此,要在已知半径的圆圈中旋转特定角度的点,我们需要以下一个方式计算坐标:

x = cx + sin(angle) * R; 
y = cy + cos(angle) * R;

现在让我们回到Android和Canvas!

@Override
protected void onDraw(Canvas canvas) {
    super.onDraw(canvas);

    canvas.save();
    float cx = getWidth() / 2f;
    float cy = getHeight() / 2f;

    float scaleMarkSize = getResources().getdisplayMetrics().density * 16; // 16dp
    float radius = Math.min(getWidth(),getHeight()) / 2;

    for (int i = 0; i < 360; i += 45) {
        float angle = (float) Math.toradians(i); // Need to convert to radians first

        float startX = (float) (cx + radius * Math.sin(angle));
        float startY = (float) (cy - radius * Math.cos(angle));

        float stopX = (float) (cx + (radius - scaleMarkSize) * Math.sin(angle));
        float stopY = (float) (cy - (radius - scaleMarkSize) * Math.cos(angle));

        canvas.drawLine(startX,startY,stopX,stopY,scalePaint);
    }

    canvas.restore();
}

代码将以45°的步长绘制标记.请注意,您需要将角度转换为弧度,对于Y轴,我在画布上使用减去原因将其翻转.这是我得到的:

71道经典Android面试题和答案_android面试题库,android面试题-Android文档类资源-CSDN下载

71道经典Android面试题和答案_android面试题库,android面试题-Android文档类资源-CSDN下载

71道经典Android面试题和答案_android面试题库,android面试题-Android文档类资源-CSDN下载

android @android:Theme.Dialog 和 @android:Widget.Button找不到

android @android:Theme.Dialog 和 @android:Widget.Button找不到

android @android :Theme.Dialog 和 @android :Widget.Button找不到是什么回事?

Android Emulator 是否包含 Android SDK 或 Android Studio?

Android Emulator 是否包含 Android SDK 或 Android Studio?

来自Android Emulator release notes

Android 模拟器包含在 Android Studio 中。

25.3.0 之前的模拟器版本作为 Android SDK 工具。

为确保您拥有最新版本,请检查 SDK Manager 更新。

对于 25.3.0 之前的 Android Emulator 版本,请参阅 Android SDK 工具发行说明。

Android Studio – 使用依赖于另一个Android库的Android库构建Android项目

Android Studio – 使用依赖于另一个Android库的Android库构建Android项目

我需要使用Gradle构建一个依赖于Android库项目A的Android项目,该项目取决于另一个Android库项目B.

到目前为止,我有以下内容:

Android项目:

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android'

dependencies {
    compile project(':LibA')
}

android {
    compileSdkVersion 7
    buildToolsversion "17.0.0"
}

manifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.cyborg.template"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="7" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name="com.cyborg.template.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Android库A:

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

dependencies {
    compile project(':LibB')
}


android {
    compileSdkVersion 7
    buildToolsversion "17.0.0"
} 

manifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.lib.project.a"
          android:versionCode="1"
          android:versionName="1.0">

    <uses-sdk
            android:minSdkVersion="7"
            android:targetSdkVersion="7"/>

</manifest>

Android库B:

的build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.+'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 7
    buildToolsversion "17.0.0"
} 

manifest.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.lib.project.b"
          android:versionCode="1"
          android:versionName="1.0">

    <uses-sdk
            android:minSdkVersion="7"
            android:targetSdkVersion="7"/>

</manifest>

在尝试构建Android项目时,Android studio报告了以下错误:

Gradle: Execution Failed for task ':LibA:processDebugManifest'.
  > Manifest merging Failed. See console for more info.

那个控制台在哪里我想搜索有关错误的更多信息?

我发现了一些关于这个错误的问题,但它似乎与我的情况不一样.

启示?

谢谢,
亚当.

解决方法:

该库的清单文件当前必须具有< application />节点,即使它是空的.

这是我们将在某些时候删除的限制,但现在,只需添加它.

我们今天的关于Android – 计算弧角手机计算弧度的软件的分享已经告一段落,感谢您的关注,如果您想了解更多关于71道经典Android面试题和答案_android面试题库,android面试题-Android文档类资源-CSDN下载、android @android:Theme.Dialog 和 @android:Widget.Button找不到、Android Emulator 是否包含 Android SDK 或 Android Studio?、Android Studio – 使用依赖于另一个Android库的Android库构建Android项目的相关信息,请在本站查询。

本文标签: