小编reu*_*cam的帖子

重用布局XML和背后的代码

我试图将几个按钮变成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有任何其他批评,我也会很感激.

android

15
推荐指数
1
解决办法
8225
查看次数

Windows 7中的"Android Create"调用失败 - 缺少JDK

我在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)

java windows android windows-7

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

FileModeWinding和DrawPath会导致奇数峰值出现

我正在使用gdiplus来"抚摸"一个短信.在某些情况下,我们看到图形的顶部或底部出现"尖峰",我不确定为什么.我们可以通过调整笔划宽度和字体大小来最小化这个,但这不是一个好的解决方案.我希望有人可以向我解释这个问题.

Spikey Bug

并生成此代码示例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)

gdi+

6
推荐指数
1
解决办法
922
查看次数

Windows EVENTLOGRECORD结构中的可变长度字段如何工作?

我试图确定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)

c++ winapi

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

新对象导致堆上的损坏

几天来,我一直在努力解决堆腐败问题.我第一次被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)

我希望有任何可能导致这种情况的原因,或者其他故障排除步骤.

c++ heap gflags

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

标签 统计

android ×2

c++ ×2

gdi+ ×1

gflags ×1

heap ×1

java ×1

winapi ×1

windows ×1

windows-7 ×1