我试图将几个按钮变成Android中的可重用组件.我已经成功地使XML/UI部分工作,但我无法弄清楚如何使代码背后的代码可以在活动之间重用,而不是在任何地方重新编码.我是Android的新手,所以如果这很明显我会道歉.
我已经多次审阅过这篇文章:Android布局技巧3 - 第1部分,但似乎缺少一些文件,而且我没有足够的经验来重建它们.
我的主要布局的一个愚蠢的版本:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="375px"
android:layout_alignParentTop="true" />
<include layout="@layout/navbar"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
然后我的"组件":
<?xml version="1.0" encoding="UTF-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:gravity="center">
<ImageButton android:id="@+id/Button1"
android:layout_width="71px"
android:layout_height="wrap_content"
android:background="@drawable/button1"
android:layout_alignParentBottom="true" />
<ImageButton android:id="@+id/Button2"
android:layout_width="75px"
android:layout_height="wrap_content"
android:background="@drawable/button1"
android:layout_toRightOf = "@+id/Button1"
android:layout_alignParentBottom="true" />
</LinearLayout>
</merge>
Run Code Online (Sandbox Code Playgroud)
如果您对我的XML有任何其他批评,我也会很感激.
我在Windows 7中设置android dev环境时遇到问题.我按照这里的说明,以及几个环境子链接.我正在使用带有Android插件的Eclipse.我已经在不同的位置安装了几次Java JDK(jdk-6u20-windows-i586.exe) - 但我显然遗漏了一些东西.
每次我运行"android create avd --target 2 --name my_avd"我都会收到错误消息:
C:\Users\andrew>android create avd --target 2 --name my_avd
WARNING: Java not found in your path.
Checking it it's installed in C:\Program Files\Java instead.
ERROR: No suitable Java found. In order to properly use the Android Developer
Tools, you need a suitable version of Java installed on your system. We
recommend that you install the JDK version of JavaSE, available here:
http://java.sun.com/javase/downloads/
You can find …Run Code Online (Sandbox Code Playgroud) 我正在使用gdiplus来"抚摸"一个短信.在某些情况下,我们看到图形的顶部或底部出现"尖峰",我不确定为什么.我们可以通过调整笔划宽度和字体大小来最小化这个,但这不是一个好的解决方案.我希望有人可以向我解释这个问题.

并生成此代码示例4,其轮廓和尖峰(无意)
GraphicsPath path(FillModeWinding);
path.AddString(text,wcslen(text),&fontFamily,StateInfo.TheFont.TheWeight,(REAL)minSize,PointF((REAL)ptStart.x, (REAL)ptStart.y),&sf);
// Draw the outline first
if (StateInfo.StrokeWidth > 0) {
Gdiplus::Color strokecolor(GetRValue(StateInfo.StrokeColor), GetGValue(StateInfo.StrokeColor), GetBValue(StateInfo.StrokeColor));
Pen pen(strokecolor,(REAL)StateInfo.StrokeWidth);
graphics.SetSmoothingMode(Gdiplus::SmoothingModeAntiAlias);
graphics.SetPixelOffsetMode(Gdiplus::PixelOffsetModeHighQuality);
graphics.DrawPath(&pen, &path);
}
// Draw the text by filling the path
graphics.FillPath(&solidBrush, &path);
Run Code Online (Sandbox Code Playgroud) 我试图确定EVENTLOGRECORD数据的可变长度部分是如何工作的,但收效甚微.
Winnt.h定义了结构和以下数据,如下所示:
typedef struct _EVENTLOGRECORD {
DWORD Length; // Length of full record
DWORD Reserved; // Used by the service
DWORD RecordNumber; // Absolute record number
DWORD TimeGenerated; // Seconds since 1-1-1970
DWORD TimeWritten; // Seconds since 1-1-1970
DWORD EventID;
WORD EventType;
WORD NumStrings;
WORD EventCategory;
WORD ReservedFlags; // For use with paired events (auditing)
DWORD ClosingRecordNumber; // For use with paired events (auditing)
DWORD StringOffset; // Offset from beginning of record
DWORD UserSidLength;
DWORD UserSidOffset;
DWORD DataLength;
DWORD DataOffset; …Run Code Online (Sandbox Code Playgroud) 几天来,我一直在努力解决堆腐败问题.我第一次被vs 2005调试器警告我可能已经损坏了堆,删除了我以前新建的对象.对这个问题进行研究后,我得到了gflags和页面堆设置.为我的特定图像启用此设置后,它应该指向我实际导致损坏的行.
Gflags将相关对象的构造函数识别为罪魁祸首.该对象派生如下:
class POPUPS_EXPORT MLUNumber : public MLUBase
{
...
}
class POPUPS_EXPORT MLUBase : public BusinessLogicUnit
{
...
}
Run Code Online (Sandbox Code Playgroud)
我可以在一个单独的线程中实例化一个MLUNumber,并且不会发生堆损坏.
我可以实例化一个不同的类,它也继承自MLUBase,不会导致堆损坏.
由于在构造函数的左括号上发生损坏而导致访问冲突,这似乎是由于对象的隐式初始化(?).
基类构造函数(MLUBase)成功完成.
从vs 2005中的内存窗口挖掘,似乎没有为实际对象分配足够的空间.我的猜测是,只为基类分配了足够的内容.
导致故障的线路:
BusinessLogicUnit* biz = new MLUNumber();
Run Code Online (Sandbox Code Playgroud)
我希望有任何可能导致这种情况的原因,或者其他故障排除步骤.