精华内容
下载资源
问答
  • CoderHelper 是怎样实现添加模块信息以及函数说明信息的?首先,你需要知道,本程序的基本思路!在添加时本程序模仿了ini的读写方式.也救生步说在代码中先定好字段位置,如:"********************版权信息***************...

    CoderHelper 是怎样实现添加模块信息以及函数说明信息的?

    首先,你需要知道,本程序的基本思路!在添加时本程序模仿了ini的读写方式.也救生步说在代码中先定好字段位置,如:"'********************版权信息********************" 就是一个字段.接着,以字段的基础上定位键的位置.那么"'*隶属工程:"就时一个键 后面的字符就时键的值.然后,只要编写好怎样定位.那么.就很简单了!下面是其调用模块中的代码.以下代码实现了向模块中添加信息.而操作代码窗口中的代码的代码将是我所给你的代码:

      '********************版权信息********************
    '*隶属工程: CoderHelper
    '*模块名称: modMark
    '*模块描述:
    '*成员个数: 2
    '*代码行数: 67
    '*声明行数: 14
    '*创建时间: 2005-8-10 19:24:05(创建人:MysticBoy)
    '*修改时间: 2005-8-10 19:37:33(修改人:MysticBoy)
    '*代码说明:
    '*版权说明: 版权所有(c) ?-2005 Mysticsoft.
    '* 保留所有权
    '***********************************************
    Option Explicit

    Public Sub SetCopyRightInfs(ObjVBC As VBComponent)
    Dim lc As Long
    On Error Resume Next
    Dim tmp1x As String
    With pjtMark
    .ObjVBComponent = ObjVBC
    lc = .FindMark("版权信息")
    If frmAddIn.cbsALSGC.Value = 1 Then .WriteKey "版权信息", "隶属工程:", MVBI.ActiveVBProject.Name, lc, 1
    If frmAddIn.cbsAMKM.Value Then .WriteKey "版权信息", "模块名称:", ObjVBC.Name, lc, 2
    tmp1x = .ReadKey("版权信息", "模块描述:", lc)
    If tmp1x = "" Then
    If frmAddIn.cbsAMKMS.Value = 1 Then .WriteKey "版权信息", "模块描述:", ObjVBC.Description, lc, 3
    Else
    ObjVBC.Description = tmp1x
    If frmAddIn.cbsAMKMS.Value = 1 Then .WriteKey "版权信息", "模块描述:", ObjVBC.Description, lc, 3
    End If
    If frmAddIn.cbsDMHS.Value = 1 Then
    .WriteKey "版权信息", "成员个数:", CStr(ObjVBC.CodeModule.Members.Count), lc, 4
    .WriteKey "版权信息", "代码行数:", CStr(ObjVBC.CodeModule.CountOfLines), lc, 5
    .WriteKey "版权信息", "声明行数:", CStr(ObjVBC.CodeModule.CountOfDeclarationLines), lc, 6
    End If
    If .ReadKey("版权信息", "创建时间:", lc) = "" Then
    .WriteKey "版权信息", "创建时间:", CStr(Now) + "(创建人:" + UserName + ")", lc, 7
    End If
    .WriteKey "版权信息", "修改时间:", CStr(Now) + "(修改人:" + UserName + ")", lc, 8
    If frmAddIn.cbsADMSM.Value = 1 Then
    If .ReadKey("版权信息", "代码说明:", lc) = "" Then
    .WriteKey "版权信息", "代码说明:", "", lc, 9
    End If
    End If

    Dim tmptxt As String
    tmptxt = frmAddIn.txtABQSM.Text
    tmptxt = Replace(tmptxt, "%YEAR", CStr(Year(Now)))
    tmptxt = Replace(tmptxt, "&COMPANY", GetCompanyName)
    .WriteKey "版权信息", "版权说明:", tmptxt, lc, 10
    .WriteKey "版权信息", " 保留所有权 ", "", lc, 11
    .WriteKey "版权信息", "**********************************************", "", lc, 12
    If frmAddIn.cbsDMHS.Value = 1 Then
    .WriteKey "版权信息", "成员个数:", CStr(ObjVBC.CodeModule.Members.Count), lc, 4
    .WriteKey "版权信息", "代码行数:", CStr(ObjVBC.CodeModule.CountOfLines), lc, 5
    .WriteKey "版权信息", "声明行数:", CStr(ObjVBC.CodeModule.CountOfDeclarationLines), lc, 6
    End If
    WriteLine "[" + ObjVBC.Name + "]的版权信息已编辑!" + IIf(err.Number <> 0, vbNewLine + "伴随错误:" & err.Number & err.Description + vbNewLine, "") & Now
    End With
    End Sub

    Sub SetCopyrightinfToPjt(Pjt As VBProject)
    Dim n As Long
    For n = 1 To Pjt.VBComponents.Count
    SetCopyRightInfs Pjt.VBComponents(n)
    DoEvents
    Next n
    WriteLine "[" + Pjt.Name + "]内的" & n & "个代码模块版权信息被编辑!" & Now
    End Sub

    以下代码实现了在一个代码窗口中添加其方法的说明信息.

    Option Explicit
    Public Sub AddMethodInfs(objCmt As VBComponent)
    Dim n As Long
    Dim mb As Member
    Dim cm As CodeModule
    Set cm = objCmt.CodeModule
    On Error GoTo errH
    For n = 1 To objCmt.CodeModule.Members.Count
    Set mb = objCmt.CodeModule.Members(n)
    If mb.Type = vbext_mt_Event Or mb.Type = vbext_mt_Method Then
    If frmAddIn.cbsMethods(5).Value = 1 And cm.ProcCountLines(mb.Name, vbext_pk_Proc) < frmAddIn.udMethodMixline.Value Then
    WriteLine "模块[" + cm.Parent.Name + "]的成员[" + mb.Name + "]有" & cm.ProcCountLines(mb.Name, vbext_pk_Proc) & _
    "行代码,小于您限制的" & frmAddIn.udMethodMixline.Value & "行,因此不编写说明信息!", vbRed
    Else
    AddInfsToMethod mb, cm
    WriteLine "模块[" + cm.Parent.Name + "]的成员[" + mb.Name + "]说明信息处理完成!", vbBlue
    End If
    End If
    Next n
    errH:
    If err.Number <> 0 Then
    WriteLine "为模块[" + cm.Parent.Name + "]进行一次性添加说明信息时出现错误:" + vbNewLine + "错误内容:" + err.Description
    End If
    End Sub
    Public Sub AddInfsToMethod(mb As Member, cm As CodeModule)
    Dim loc As Long, txtLine As String
    Dim txtMark As String
    On Error GoTo errH
    txtLine = GetProcLine(mb, cm) '找到函数头
    If IsAPI(txtLine) = True Then
    WriteLine "检测到[" + mb.Name + "]是API,不建议为API编写说明信息.重要API请手动编写!", vbRed
    Exit Sub
    End If

    pjtMark.ObjVBComponent = cm.Parent
    txtMark = "成员[" + mb.Name + "]说明信息"
    With pjtMark
    loc = .FindMark(txtMark)
    loc = IIf(loc = 0, GetMbLoc(cm, txtCode:=txtLine), loc) '找到函数头所在位置
    '新加条目在这里加
    '~~~~~~~~~~~~~~~~


    '==================================
    .WriteKey txtMark, Left("*****************************************" + _
    "************************************************************" + _
    "************************************************************", 53 + Len(mb.Name)), "", loc

    If frmAddIn.cbsMethods(3).Value = 1 Then
    '===============================================
    Dim tm3x As String
    tm3x = .ReadKey(txtMark, "功能说明:", loc)
    If tm3x = "" Then
    .WriteKey txtMark, "功能说明:", "", loc
    End If
    End If

    '====================================================
    If frmAddIn.cbsMethods(1).Value = 1 Then
    Dim pl As String
    pl = GetProcLine(mb, cm, True)
    Dim xxpp1 As String
    Dim xps As String
    xps = GetMethodReturn(pl)
    xxpp1 = .ReadKey(txtMark, xps, loc)
    If Trim(xxpp1) <> "" Then
    .WriteKey txtMark, xxpp1, "<在此键入说明>", loc
    End If

    xps = GetMethodInputs(pl)
    xxpp1 = .ReadKey(txtMark, "输入参数:", loc)
    If xxpp1 = "" And xps <> "" Then
    .WriteKey txtMark, "输入参数:", "参数名称 说明" + GetMethodInputs(pl), loc
    End If
    End If

    '==============================================
    If frmAddIn.cbsMethods(2).Value = 1 Then
    Dim tm1x As String
    tm1x = .ReadKey(txtMark, "成员描述:", loc)
    If tm1x = "" Then
    tm1x = mb.Description
    Else
    mb.Description = tm1x
    End If
    .WriteKey txtMark, "成员描述:", mb.Description, loc
    End If


    '===================================================
    If frmAddIn.cbsMethods(4).Value = 1 Then
    Dim tm2x As String
    tm2x = .ReadKey(txtMark, "HelpCtID:", loc)
    If CInt(tm2x + ".0") = 0 Then
    tm2x = mb.HelpContextID
    Else
    mb.HelpContextID = tm2x
    End If
    .WriteKey txtMark, "HelpCtID:", mb.HelpContextID, loc
    End If

    '============================================================
    If frmAddIn.cbsMethods(0).Value = 1 Then
    .WriteKey txtMark, "成员类型:", GetMethodText(mb), loc
    End If

    '===================================================
    If frmAddIn.cbsMethods(6).Value = 1 Then
    .WriteKey txtMark, "代码编辑:", Now & "(" + UserName + ")", loc
    End If

    End With
    errH:
    If err.Number <> 0 Then
    WriteLine "为模块[" + cm.Parent.Name + "]的成员[" + mb.Name + "]添加说明信息时出现错误:" + vbNewLine + "错误内容:" + err.Description
    End If
    End Sub

    Public Function GetMethodReturn(txtCode As String, Optional txtWith As String = "'* ")
    Dim n As Long
    If InStr(txtCode, "Sub ") > 0 Then
    GetMethodReturn = "函数返回:"
    ElseIf InStr(txtCode, "Property Get ") > 0 Then
    GetMethodReturn = "属性返回:"
    End If
    End Function


    Function GetMethodInputs(txtCode As String, Optional txtWith As String = "'* ") As String
    Dim ary() As String, xx1
    Dim txt1 As String
    Dim ret As String
    Dim tmp1 As String
    On Error GoTo errH
    txt1 = Mid(txtCode, InStr(txtCode, "(") + 1)
    txt1 = Mid(txt1 + " ", 1, InStr(txt1, ")") - 1)
    ary = Split(txt1, ",")
    '
    For Each xx1 In ary
    xx1 = Trim(xx1)
    xx1 = Replace(xx1, "ByVal ", "")
    xx1 = Replace(xx1, "ByRef ", "")
    tmp1 = Left(xx1, InStr(xx1, " "))
    If xx1 <> "" And tmp1 = "" Then
    tmp1 = xx1
    End If

    If tmp1 = "Optional " Then
    tmp1 = Trim(Right(xx1, Len(xx1) - Len(tmp1)))
    tmp1 = Left(tmp1, InStr(tmp1, " ")) + "[此参数可选]"
    End If
    tmp1 = vbNewLine + txtWith + tmp1
    ret = ret + tmp1
    Next
    errH:
    GetMethodInputs = ret
    End Function


    Function GetMethodText(mb As Member)
    Dim ret As String
    On Error GoTo errH
    If InStr(mb.Name, "_") > 0 Then
    Dim xxs() As String
    xxs = Split(mb.Name, "_")
    ret = "对象[" + xxs(0) + "]的[" + xxs(1) + "]事件"
    ElseIf mb.Type = vbext_mt_Method Then
    ret = IIf((mb.Scope = vbext_Friend), "友员方法", IIf((mb.Scope = vbext_Private), "私有方法", "公有方法"))
    ElseIf mb.Type = vbext_mt_Property Then
    ret = IIf((mb.Scope = vbext_Friend), "友员属性", IIf((mb.Scope = vbext_Private), "私有属性", "公有属性"))
    End If
    errH:
    GetMethodText = ret
    End Function

    Public Function GetMbLoc(cm As CodeModule, Optional mb As Member, Optional txtCode As String = "") As Long
    Dim tmp1 As String, n1 As Long, n2 As Long
    On Error GoTo errH
    If txtCode = "" Then
    tmp1 = GetProcLine(mb, cm)
    Else
    tmp1 = txtCode
    End If
    GetMbLoc = IIf(cm.Find(tmp1, n1, n2, n2, n2), n1, 0)
    errH:
    GetMbLoc = n1
    End Function


    Function GetProcLine(mb As Member, cm As CodeModule, Optional FullCode As Boolean = False) As String
    Dim ary() As String, xx, ok As Boolean
    Dim tmp1 As String, n1 As Long, n2 As Long
    On Error GoTo errH
    tmp1 = cm.Lines(cm.ProcStartLine(mb.Name, vbext_pk_Proc), cm.CountOfLines)
    ary = Split(tmp1, vbNewLine)
    ok = False
    Dim txtmp As String
    For Each xx In ary
    If ok = False Then
    If InStr(xx, "Sub ") > 0 Or InStr(xx, "Function ") > 0 Or InStr(xx, "Property ") > 0 Then
    If InStr(xx, mb.Name) > 0 Then
    If Right(Trim(xx), 1) = "_" And FullCode = True Then '
    ok = True
    txtmp = Left(xx, InStr(xx, "_") - 1)
    Else
    GetProcLine = xx
    Exit Function
    End If
    End If
    End If
    Else
    If Right(Trim(xx), 1) = "_" Then
    ok = True
    txtmp = txtmp + Left(xx, InStr(xx, "_") - 1)
    Else
    txtmp = txtmp + xx
    GetProcLine = txtmp
    Exit Function
    End If

    End If

    Next xx
    errH:

    End Function

    Public Function IsAPI(mbCode As String) As Boolean
    'Print IsAPI("Private Declare Function GetVersionEx Lib ""kernel32"" Alias ""GetVersionExA"" (lpVersionInformation As OSVERSIONINFO) As Long")
    'True
    On Error Resume Next
    IsAPI = InStr(mbCode, "Declare ") > 0 And InStr(mbCode, " Lib ") > 0
    End Function
     

    INI中有写键的函数,也就有读键的代码.以下是全部代码.您可以做以参考.注意:以下代码是经过调试合格的代码.无须修改即可使用.此代码仅仅在你编写向代码中添加代码的注释信息的程序时使用.代码的调用效率要求非常高的.如果你的读写一个字段.建议在可选参数中直接给字段位置lngLocMark 给你值,这样程序就不再重复调用查找字段的代码.

    Option Explicit
    Public ObjVBC As VBComponent

    Public Sub WriteKey(txtMark As String, txtKey As String, txtValue As String, Optional lngLocMark As Long = 0, Optional KeyIndex As Long = -1)
    Dim lc As Long
    On Error GoTo errH
    Dim txtText As String
    txtText = txtValue
    Dim lcx As Long
    Dim xx1 As Long, xx2 As Long
    xx1 = FindMark(txtMark)
    lc = IIf(lngLocMark = 0, xx1, lngLocMark)
    If lc = 0 Or xx1 = 0 Then
    lc = IIf(lc = 0, 1, lc)
    ObjVBC.CodeModule.InsertLines lc, "'********************" + txtMark + "********************"
    DoEvents
    End If
    If KeyIndex <= 0 Then
    lcx = FindKey(txtMark, txtKey, lc)
    Else
    If Left(ObjVBC.CodeModule.Lines(lc + KeyIndex, 1), 2) = "'*" Then
    lcx = KeyIndex
    Else
    lcx = FindKey(txtMark, txtKey, lc)
    End If
    End If
    If lcx = 0 Then
    KeyIndex = IIf(KeyIndex = -1 Or KeyIndex = 0, 1, KeyIndex)
    ObjVBC.CodeModule.InsertLines lc + KeyIndex, "'*" + txtKey + " " + txtValue
    Exit Sub
    DoEvents
    lcx = KeyIndex
    End If
    Dim xxc As Long
    xxc = FindKey(txtMark, txtKey, lc + lcx - 1)
    If xxc = 0 Then
    lcx = lcx
    Else
    lcx = xxc
    End If
    DoEvents
    ObjVBC.CodeModule.ReplaceLine lcx, "'*" + txtKey + " " + txtValue
    DoEvents
    errH:
    If err.Number <> 0 Then

    End If
    End Sub

    Public Function ReadKey(txtMark As String, txtKey As String, Optional mklc As Long = 0) As String
    Dim lc As Long
    If mklc = 0 Then
    lc = FindMark(txtMark)
    Else
    lc = mklc
    End If
    If lc > 0 Then
    lc = FindKey(txtMark, txtKey, lc)
    If lc > 0 Then
    ReadKey = Trim(Mid(ObjVBC.CodeModule.Lines(lc, 1), Len(txtKey) + 3))
    End If
    End If
    End Function

    Public Function KillKey(txtMark, txtKey As String)
    ObjVBC.CodeModule.DeleteLines FindKey(txtMark, txtKey), 1
    End Function
    Public Function KillMark(txtMark As String)
    ObjVBC.CodeModule.DeleteLines FindMark(txtMark), 1
    End Function

    Public Function FindKey(ByVal txtMark As String, txtKey As String, Optional locMark As Long = 0) As Long
    Dim n As Long
    Dim lc As String
    If locMark = 0 Then
    lc = FindMark(txtMark)
    Else
    lc = locMark
    End If
    Dim txt As String
    Do
    lc = lc + 1
    DoEvents
    txt = Trim(ObjVBC.CodeModule.Lines(lc, 1))
    If Left(txt, Len(txtKey) + 2) = Trim("'*" + txtKey) Then
    FindKey = lc
    Exit Function
    End If
    DoEvents
    Loop Until Left(txt, 2) <> "'*"
    'FindKey
    End Function

    Public Function FindMark(ByVal txtMark As String) As Long
    Dim n As Long
    On Error Resume Next
    txtMark = "'********************" + txtMark + "********************"
    Dim nx As Long, nx1 As Long, nx2 As Long
    ObjVBC.CodeModule.Find txtMark, n, nx, nx1, nx2
    FindMark = n
    End Function

    Public Property Get ObjVBComponent() As VBComponent
    Set ObjVBComponent = ObjVBC
    End Property

    Public Property Let ObjVBComponent(ByVal vNewValue As VBComponent)
    Set ObjVBC = vNewValue
    End Property

    展开全文
  • 在线扩展编辑器的位置禅道扩展编辑就是后台管理模块下的扩展编辑器。位置如图:在线编辑器的界面点击进入编辑器, 首先看到的是可扩展的模块列表。点击想要扩展的模块链接,右侧就会出现该模块所有可扩展的文件,...

    禅道在线扩展编辑器是依据禅道的扩展机制,对禅道项目管理软件进行在线扩展的编辑器。

    在线扩展编辑器的位置

    禅道扩展编辑就是后台管理模块下的扩展编辑器。位置如图:

    在线编辑器的界面

    点击进入编辑器, 首先看到的是可扩展的模块列表。

    点击想要扩展的模块链接,右侧就会出现该模块所有可扩展的文件,包括control.php 和model.php的方法。

    这些文件是有排列顺序的,自上而下依次是:

    model.php和该文件的方法、

    control.php和该文件的方法、

    view文件夹下的模板文件、

    语言文件、

    配置文件config.php

    JS

    CSS

    扩展文件。

    扩展文件中的排列顺序与上述的排列顺序是一致的,这样可以方便快速的找到要扩展的文件。

    在每个文件后面,有相应的操作链接,点击这些链接,就可以在线编辑扩展了。嘿嘿。 在线编辑

    1、model.php的扩展

    可以对model.php的现有方法进行扩展,编辑器可以自动生成简单代码。当然也可以对model.php新增方法。

    2、control.php的扩展

    对control.php的现有方法进行扩展时,会有是否重用代码的提示

    如果选择“确定”的话则会生成一个继承了该模块control.php的类,扩展后的方法可以继承该模块的control.php的方法。否则的话,则对该方法进行重新定义。

    同样的也可以对control.php新增方法。

    3、模板文件的扩展

    对模板文件的扩展也有两种方式,可以重写一个模板文件覆盖原来的。也可以写一个钩子脚本,对原来页面做一下局部修改。

    4、其他文件的扩展

    对其他文件扩展时,将会显示源文件的内容,可以当做扩展的参考。

    5、对扩展文件的编辑

    可以对ext目录下的扩展文件进行编辑和删除。

    保存扩展文件

    1、不必输入文件名

    对control.php的方法进行扩展和覆盖模板文件时,文件名是一定的不必输入文件名。

    2、可以输入文件名

    像对model.php的方法扩展、对语言文件、配置文件等的扩展,如果不输入文件名,则会以默认文件名保存,如果输入文件名,则会以输入文件名保存。

    3、必须输入文件名

    像新增方法、新增页面、新增钩子、新增扩展等,则必须输入文件名才能保存。

    注:

    1、保存文件时,要保证程序有读写的权限。

    2、如果文件名冲突,则不能保存,你可以更改保存的文件名或者勾选覆盖重复文件选项。

    该编辑器还很简陋,只是为方便扩展而建。可能还有很多问题,希望大家提出。

    展开全文
  • ### 在弹出的窗口在添加点击事件,搞了两小时没有头绪 vue项目 ... // 提示窗位置 infoWin.setPosition(new qq.maps.LatLng(thih.datatable[i].latitude, thih.datatable[i].longitude)) }) } }) ```
  • 怎样在网站中添加google统计代码

    千次阅读 2017-09-13 17:47:40
    在 Google Analytics(分析)帐户中的哪个位置可以找到我的跟踪代码? 要在 Google Analytics(分析)帐户内访问您的跟踪代码,请按以下步骤操作: 访问 http://www.google.cn/analytics/zh-CN/ 并登录到 Google ...

      

    在 Google Analytics(分析)帐户中的哪个位置可以找到我的跟踪代码?
    要在 Google Analytics(分析)帐户内访问您的跟踪代码,请按以下步骤操作:

    访问 http://www.google.cn/analytics/zh-CN/ 并登录到 Google Analytics(分析)帐户。
    在概述页面,由于代码对应的配置文件是特定的,因此您需要选择含有跟踪代码所在的配置文件的帐户。 
    在帐户的概述页中选择配置文件。 
    在该配置文件的操作列中点击修改。 
    点击"主要网站配置文件信息"框右上角的检查状态。 
    您可以从添加跟踪功能的说明部分的文本框中复制并粘贴您的跟踪代码。 
    在网页中添加跟踪代码时,请确保在 HTML 代码的正文部分直接将其粘贴到 标记之前。

    本站示例代码(将UA-8484778-1修改为你自己的ID,粘贴在</body>之前即可):

    [html] view plain copy
    1.     <!--google统计代码开始-->  
    2.     <script type="text/javascript">  
    3.         var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");  
    4.         document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));  
    5.         </script>  
    6.         <script type="text/javascript">  
    7.         try {  
    8.         var pageTracker = _gat._getTracker("UA-8484778-1");  
    9.         pageTracker._trackPageview();  
    10.         } catch(err) {}</script>  
    11. <!--google统计代码结束-->  

    原文地址:http://lj.soft.blog.163.com/blog/static/794024812009459225921/

    展开全文
  • 最近在做一个功能,需要获取图片的拍摄时的地理位置信息,经纬度 我一直想找怎样把经纬度直接存放到文件信息里面去,不然太难维护一一对应的这些信息了,最后终于被我找到了,那就是伟大的图片扩展信息 EXIF 设置...

    最近在做一个功能,需要获取图片的拍摄时的地理位置信息,经纬度 我一直想找怎样把经纬度直接存放到文件信息里面去,不然太难维护一一对应的这些信息了,最后终于被我找到了,那就是伟大的图片扩展信息

    EXIF

    设置EXIF

    ExifInterface exif=new ExifInterface(path);
    
            //设置经纬度,TAG是可以自定义的
            if(droneLatitude!=0||droneLongitude!=0) {
                exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, droneLongitude + "");
                exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, droneLatitude + "");
            }
            exif.saveAttributes();
    

    以上是设置GPS 经度和纬度的值,path为图片的地址信息

    获取EXIF

    String longitude = exif.getAttribute(ExifInterface.TAG_GPS_LONGITUDE);
    String latitude= exif.getAttribute(ExifInterface.TAG_GPS_LATITUDE);
    

    <font color=#0099ff>注意此时获取到的字符串跟我们设置时有些不一样,经纬度可能已经被封装到一个字符串中,可以debug查看该字符串然后提取经纬度值</font>

    String time=exif.getAttribute(ExifInterface.TAG_DATETIME);
    String model=exif.getAttribute(ExifInterface.TAG_MODEL);
    String iso=exif.getAttribute(ExifInterface.TAG_ISO);
    

    目前封装好的TAG有以下几种

    •     TAG_DATETIME 时间日期
      
    •     TAG_FLASH 闪光灯
      
    •     TAG_GPS_LATITUDE 纬度
      
    •     TAG_GPS_LATITUDE_REF 纬度参考 
      
    •     TAG_GPS_LONGITUDE 经度
      
    •     TAG_GPS_LONGITUDE_REF 经度参考 
      
    •     TAG_IMAGE_LENGTH 图片长
      
    •     TAG_IMAGE_WIDTH 图片宽
      
    •     TAG_MAKE 设备制造商
      
    •     TAG_MODEL 设备型号
      
    •     TAG_ORIENTATION 方向
      
    •     TAG_WHITE_BALANCE 白平衡
      
    •     TAG_ISO 感光度 
      
    •     TAG_EXPOSURE_TIME曝光时间
      

    转载于:https://my.oschina.net/u/2341823/blog/728793

    展开全文
  • 他们的首页位置都会通过轮播图的方式来展示重点推荐的内容,方便用户快速了解展示信息,起到展现主打产品、以及促销活动、装饰首页的效果,对产品数据增长起到重要作用。 本文将和大家分享怎样用摹客在线原型实现轮播...
  • ①进入水印相机后,点2113击屏幕上5261地理位置信息栏。...③输入文字后点击,返回水印相机拍摄...水印相机是一款可以添加个性化水印的拍照软件,那么水印相机怎样才能自动定位呢?1、打开手机、(以华为荣耀手机为例)...
  • 数组中每个元素未锚点的位置信息,然后再更新节点。目前想到的做法是选择下拉框时,将图上的node节点获取到,遍历获取到的node节点数组,给每个节点的model中添加anchorPoints为选择的锚点...
  • 最近用swing写了一个简单的聊天界面,但是页面上的...方法在添加信息之后强制将光标移动到最后一行。据说是Aviva中采用的方式。 2.使用JTextArea的setCaretPosition();手动设置光标的位置为最后一行。人气颇高。使...
  • 最近用swing写了一个简单的聊天界面,但是...方法在添加信息之后强制将光标移动到最后一行。据说是Aviva中采用的方式。2.使用JTextArea的setCaretPosition();手动设置光标的位置为最后一行。人气颇高。使用方法也...
  • 有时候输入T-CODE ME2L 展示采购申请信息时,需要追加一些字段,自定义的或者其他表里取出来的值。这是个ALV展示,所以需要的是调整ALV展示的结构,然后再把需要的值维护进去即可。首先看下最终效果:ME2L执行结果:...
  • 怎样在IIS中写Python的CGI脚本

    千次阅读 2005-01-25 17:16:00
    1。安装好Python;2。配置IIS: a.打开管理工具-〉Internet信息服务; b.... c.... d.添加一个映射:可执行文件写:C:/Python23/Python.exe ”%s” %s 注意Pythong的路径要指向你安装Python的位置
  • 定义数据源: 选择需要提取的图形文件,可通过添加文件夹或添加图纸文件的方式完成选择过程。选取包含图纸信息的图块,在图中包含图纸信息的图块名为“11x17”。 11x17是北美地区工程图纸常用的幅面,相当于我...
  • 各位大神们,我现在可以导入3d模型,并且这个模型可以拖动,但是一部分模型被单独... // 显示模型信息 //$("#label").text("name:" + object.name); } // 更新控件 function update() { stats.update...
  • 在Word文档的使用过程中,我们可以轻松的向文档中插入图片信息,那么,怎样使用C#向Word文档中插入图片呢?本实例将会介绍一种方法,可以方便的实现上述功能。实例运行效果如图1所示。 图1 在Word文档中插入图片 ...
  • 多账号登录控制

    2020-07-22 20:45:34
    分析:用户的登录信息保存位置,起初考虑将用户表中添加一个标识字段,保存用户登录对应的客户端IP信息到Oracle表中,(中间一直在想用户session超时候或者用户账号在另一处登录时,怎样将之前登录的账号退出系统,...
  • 再点击页面右上角“三个点”,选择“设置”,将“允许志愿龙口使用我的位置信息”打开。2、怎样将“志愿龙口”小程序添加到手机桌面?答:在小程序首页,点击右上角“三个点”,选择“添加到桌面”。(苹果手机无法...
  • Win下的输入法(IME)编程(2)

    千次阅读 2014-03-11 11:35:22
     了解了系统是怎样保存输入法的信息后,要安装一个输入法就是很简单的事情了,我们只要准备好一个输入法ime文件,把它放好在某个位置后,再手动往上一点里提到的注册表位置添加必要的项后输入法安装就算完成了。...
  • 昨天碰到同事问了一个问题,@impor导入外部样式与link链入外部样式的优先级是怎样的,为什么实验的结果是按照样式表导入后的位置来决定优先级。今天就这个问题具体总结如下: 先解释一下网页添加css样式的方法,...
  • 三个电脑办公小技巧

    2017-08-23 11:24:09
    声明:欢迎批评指正 运行环境:win7+ie8 ...技巧1:如果电脑办公、杀毒做到一半,快没电...技巧2:怎样快速使用收藏地址,只需多做一步:在添加到收藏夹的时候,把创建位置设置为收藏夹栏即可,收藏夹栏不要放太多地址
  • 1.列表概念 ...前面学习的字符串可以用来存储一串信息,那么想一想,怎样存储咱们班所有同学的名字呢?定义100个变量,每个变量存放一个学生的姓名可行吗?有更好的办法吗? 答:列表。 列表的格式:
  • 在室外,已知起点和结尾就能够经过移动终端、车载终端的GNSS定位模块反馈的位置信息完结行程规划及导航服务。室内定位作为室外定位的技能延伸,弥补了传统定位技能的不足,现在也已广泛的使用在室内导航、移动付出...
  • MFC教程.zip

    2018-09-20 21:41:32
    1.3 怎样应用MFC创建一个窗口 5 1.4 怎样使用MFC销毁一个窗口 9 1.4.1 捆绑到一个已有的窗口 9 1.4.2 窗口类 10 1.4.3 窗口进程 10 1.5 怎样使用MFC创建一个窗口类 11 1.5.1 使用AfxRegisterWndClass () 函数注册一...
  • 右边是显示页面相应信息的页面) 分析: dhtmlXTree提供了很好的添加,删除节点的方法,故选择dhtmlXTree。 但是dhtmlXTree不能满足"每个节点都有各自的URL地址,单击不同的节点框架页的右侧跳转到该节点所对应的...
  • 4.2.4 信息 54 4.3 绘图例程 55 4.3.1 画点 55 4.3.2 画线 55 4.3.3 画形状 55 4.3.4 形状填充和翻转 55 4.3.5 滚动 56 4.3.6 绘制文本 56 4.3.7 绘制位图和图标 56 4.4 绘图属性 56 4.4.1 设备环境属性 57 4.4.2 画...
  • vc-mfc编程实例.rar

    热门讨论 2010-08-27 15:32:21
    4.2.4 信息 54 4.3 绘图例程 55 4.3.1 画点 55 4.3.2 画线 55 4.3.3 画形状 55 4.3.4 形状填充和翻转 55 4.3.5 滚动 56 4.3.6 绘制文本 56 4.3.7 绘制位图和图标 56 4.4 绘图属性 56 4.4.1 设备环境属性 57 4.4.2 画...
  • C# winform典型系统开发模板

    热门讨论 2011-09-17 15:13:21
     4.2.4 怎样操作RichtextBox控件的选择文本 82  4.2.5 如何获取数据表中字段的描述信息 83  4.3 设计过程 83  4.3.1 获取数据表中字段的中文信息 84  4.3.2 添加数据表的查询条件 86  4.3.3 ...
  • MFC 编程(PDF)

    热门讨论 2010-12-02 15:30:56
    4.2.4 信息 54 4.3 绘图例程 55 4.3.1 画点 55 4.3.2 画线 55 4.3.3 画形状 55 4.3.4 形状填充和翻转 55 4.3.5 滚动 56 4.3.6 绘制文本 56 4.3.7 绘制位图和图标 56 4.4 绘图属性 56 4.4.1 设备环境属性 57 4.4.2 画...

空空如也

空空如也

1 2 3 4 5 6
收藏数 103
精华内容 41
关键字:

怎样添加位置信息