我想在我的Android应用程序中创建一个自定义控件.它将是一个圆形控件,带有一些较小的可移动圆圈,表示特定值.
有没有办法实现这一点?
是否至少有一些很好的教程,我可以阅读如何创建自定义控件?
关于课程,有些事情让我烦恼.例如
class A
{
public:
A()
{
.....
.....
}
void cleanup()
{
....
....
....
}
public:
UINT a;
ULONG b;
};
Run Code Online (Sandbox Code Playgroud)
在上面的例子中有两个公共部分.在第一部分中,我定义了一个构造函数和一个方法,在第二部分中,我将声明数据成员.上面的类是A正确的.我们可以这样做吗?如果是,那么为什么需要这样做以及在什么情况下我们应该使用它?既然我们可以在一个部分完成整个事情,那么为什么有两个部分呢?
我有两行:Line1和Line2.每一行是通过两个点来定义(P1L1(x1, y1), P2L1(x2, y2)和P1L1(x1, y1), P2L3(x2, y3)).我想知道这两行定义的内角.
为此,我用横坐标计算每条线的角度:
double theta1 = atan(m1) * (180.0 / PI);
double theta2 = atan(m2) * (180.0 / PI);
Run Code Online (Sandbox Code Playgroud)
在知道角度后,我计算如下:
double angle = abs(theta2 - theta1);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题或疑问是:有时候我会得到正确的角度,但有时我会得到互补的角度(对于我来说).我怎么知道减去何时180º知道内角?有没有更好的算法呢?因为我尝试了一些方法:点积,下面的公式:
result = (m1 - m2) / (1.0 + (m1 * m2));
Run Code Online (Sandbox Code Playgroud)
但总是我有同样的问题; 当我有外角或内角时我才知道!
我在MySQL和PostgreSQL中都使用了下一个SQL语句,但它在PostgreSQL中失败了
db.Query(`SELECT COUNT(*) as N FROM email WHERE address = ?`, email)
Run Code Online (Sandbox Code Playgroud)
有这个错误:
pq: F:"scan.l" M:"syntax error at end of input" S:"ERROR" C:"42601" P:"50" R:"scanner_yyerror" L:"993"
Run Code Online (Sandbox Code Playgroud)
有什么问题?PostgreSQL中的错误消息非常神秘.
我正在开展一个真正需要访问环境光传感器的项目.
我在Google和Stackoverflow中搜索了很多,但找不到任何有用的信息.甚至可以这样做吗?
我还尝试通过计算相机输入的亮度来计算环境光值,但结果并不十分精确,因为相机会对图像进行大量调整,从而使结果失真.
有谁知道如何使用Realm存储字符串数组?我正在尝试将以下响应映射到Realm中:
"zoneInfo": {
"tariffInfoLines": [
"In this city you pay per minute."
]
}
Run Code Online (Sandbox Code Playgroud)
我们有一个包含tariffInfoLines数组的zoneInfo对象.此tariffInfoLines数组包含字符串.在Realm中,有两种不同的变量类型用于存储数据.第一个是RLMObject,它允许你的标准NSString,int,long等.
第二种类型是RLMArray,用于数组(不支持NSArray).您必须为数组提供一个类型,该类型必须是RLMObject的子类.到目前为止,我们通过使用ABCRealmString对象解决了这个问题,如下所示:
@property RLMArray<ABCRealmString> *tariffInfoLines;
Run Code Online (Sandbox Code Playgroud)
ABCRealmString包含一个NSString属性(它基本上是一个包装器):
@property NSString *value;
Run Code Online (Sandbox Code Playgroud)
然而,这意味着当Realm尝试映射响应以持久化数据时,它正在寻找键"值"(属性的名称)的值.它似乎期望响应类似于以下内容:
"zoneInfo": {
"tariffInfoLines": [
{
"value": "In this city you pay per minute."
},
]
}
Run Code Online (Sandbox Code Playgroud)
在项目中,我们让它适用于以下结构:
"userOptions": [
{
"wantsEmailNotifications": true,
"wantsPushNotifications": false
},
]
Run Code Online (Sandbox Code Playgroud)
这有一个数组,其中的对象具有Realm可以映射到的清晰键值对.zoneInfo结构似乎是我们拥有一个包含值集的数组的唯一位置,而不是它们在对象内或具有任何键.
如果有人可以对此有所了解,关于是否可以使用Realm,或者是否需要API更改来匹配Realm可以映射的结构.
我做了一个枚举:
enum class KeyPressSurfaces {
KEY_PRESS_SURFACE_DEFAULT,
KEY_PRESS_SURFACE_UP,
KEY_PRESS_SURFACE_DOWN,
KEY_PRESS_SURFACE_LEFT,
KEY_PRESS_SURFACE_RIGHT,
KEY_PRESS_SURFACE_TOTAL
};
Run Code Online (Sandbox Code Playgroud)
然后我尝试在下面输入时定义一个数组,但是我收到了错误, size of array 'KEY_PRESS_SURFACES' has non-integral type 'KeyPressSurfaces'
SDL_Surface*KEY_PRESS_SURFACES[KeyPressSurfaces::KEY_PRESS_SURFACE_TOTAL];
Run Code Online (Sandbox Code Playgroud)
我理解错误很好,但我不知道在KeyPressSurfaces枚举中移动限定常量的位置.
我也意识到我可以使用一个enum而不是一个enum class,但我觉得这应该有用,我想学习如何做到这一点.
任何回应/建议表示赞赏!谢谢!
我正在处理的应用程序是将Unicode字符串存储NVARCHAR(50)在SQL Server 2005数据库的列中.
有时,数据库返回一个填充空格的字符串,直到列的最大长度(50).在其他时候,填充不会发生.
我认为此列的类型最初被指定为NCHAR,但是当我们意识到添加了空格时,我们将其更改为NVARCHAR(50).这跟它有什么关系吗?
无论哪种方式,这个"功能"可以关闭吗?
澄清
我刚刚意识到我上面写的内容并没有说明即使是新插入的字符串也会被填充空格.
我一直在努力让这个工作,我认为我可以使用 RelativeLayout
android:layout_weight="0.3"
Run Code Online (Sandbox Code Playgroud)
在屏幕右侧放置三个按钮,不是居中,而是从顶部向下30%.
这是可能的,如果是这样,我该怎么做?
以下是我的XML,它显示了三个按钮在彼此之下,但在右上角位置:
</RelativeLayout>
<LinearLayout
android:id="@+id/rightRelativeLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_weight="1"
android:orientation="vertical"
>
<ImageButton
android:id="@+id/btn_A"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="A"
android:src="@drawable/drawer_1"
android:background="@android:color/transparent"
/>
<ImageButton
android:id="@+id/btn_B"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_weight="1"
android:text="B"
android:src="@drawable/drawer_1"
android:background="@android:color/transparent"
android:layout_below="@+id/btn_A"
/>
<ImageButton
android:id="@+id/btn_C"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginTop="10dp"
android:text="C"
android:src="@drawable/drawer_1"
android:background="@android:color/transparent"
android:layout_below="@+id/btn_B"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
[更新]为需要它的人添加了最终工作版本
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical">
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/examplegallery"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<RelativeLayout
android:id="@+id/InnerRelativeLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
<Button
android:id="@+id/btn_newpen_drawtext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pen"
/>
<EditText
android:id="@+id/etx_addtext_drawtext"
android:layout_width="fill_parent"
android:layout_toLeftOf="@+id/btn_delete_pen"
android:layout_toRightOf="@+id/btn_newpen_drawtext" …Run Code Online (Sandbox Code Playgroud) 最近我发现了来自Github的webrtc-ios示例.当我浏览项目时,我注意到VideoView类使用静态方法,我不确定是否有必要.VideoView是UIView的子类,它覆盖了两个init方法,initWithFrame:和initWithCoder:.我知道覆盖这些init方法然后使用一些方法来设置其他东西是很正常的- (void)setup;.
但是VideoView类使用静态函数static void init(VideoView *self).问题是使用静态函数与普通ObjC方法有什么好处?
VideoView类中的代码如下所示:
-(id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
init(self);
}
return self;
}
-(id)initWithCoder:(NSCoder *)aDecoder {
if (self = [super initWithCoder:aDecoder]) {
init(self);
}
return self;
}
static void init(VideoView *self) { ... }
Run Code Online (Sandbox Code Playgroud)