小编Bar*_*ney的帖子

Android 2.2点击并拖动触摸下居中的图像

我试图将十字准线拖放到一个MapView.我ImageView屏幕上有一个按钮.当我触摸它时,按钮消失并ImageView出现一个新的按钮.新ImageView的应该坐在我的手指中心,直到我在某处释放,但由于某种原因,偏移是不正确的.十字线出现在我触摸的右下方.

所以我相信这个问题是与图像不按比例移动offset_xoffset_y我定义的ACTION_DOWN部分.然后,ACTION_UP我需要createMarker(x,y)在我的手指下的正确坐标,但也错误地偏移.

我尝试了各种方法使其居中,有些方法比其他方法更好.到目前为止,我还没有使用魔术数字使其无法正常工作.

实际上,我使用点击位置并减去图片大小的一半.这对我来说很有意义.如果我减去整个图片大小,它就更接近正确.我已经尝试过网上的各种例子,所有这些例子都受到View位置不准确的影响.

你能给我一些建议吗?

crosshair = (ImageView)findViewById(R.id.crosshair);
frameLayout = (FrameLayout)findViewById(R.id.mapframe);
params = new LayoutParams(LayoutParams.WRAP_CONTENT,
        LayoutParams.WRAP_CONTENT);
crosshairImage = BitmapFactory.decodeResource(getResources(), R.drawable.crosshair);
crosshair.setOnTouchListener(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            dragStatus = START_DRAGGING;

            // hide the button and grab a mobile crosshair
            v.setVisibility(View.INVISIBLE);
            image = new ImageView(getBaseContext());
            image.setImageBitmap(crosshairImage);

            // set the image offsets to …
Run Code Online (Sandbox Code Playgroud)

android android-maps

9
推荐指数
1
解决办法
942
查看次数

半透明主题的问题

我有一个有两个活动的应用程序.第一个显示一个按钮,打开第二个按钮.

这是第一个最明智的定义:

<activity
    android:name="com.example.buttonexample.MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

第二项活动:

<activity
    android:name="com.example.buttonexample.MainActivity2"
    android:label="@string/title_activity_main_activity2" android:theme="@android:style/Theme.Translucent">
</activity>
Run Code Online (Sandbox Code Playgroud)

以下是我如何启动第二个活动(通过OnClickListener获取第一个活动上的按钮):

public void startSecondActivityClick(View v) {
   Intent startActivity2 = new Intent(this, MainActivity2.class);
   startActivity(startActivity2);
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但是当我通过击中主页和应用程序的前景来后台应用程序.我注意到第一个活动是不断创造/摧毁自己.我通过在onDestory方法中添加一些代码来增加静态int来验证这一点:

private static int count = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    count++;

}

protected void onDestroy() {
    super.onDestroy();
    Log.i("MainActivity", String.format("Destroyed, %d", count));
}
Run Code Online (Sandbox Code Playgroud)

我也注意到删除半透明主题似乎解决了这个问题.我的问题是有没有办法半透明或类似的东西,但也没有重新启动?而且,我很好奇为什么会发生这种情况.我正在使用Galaxy SIII上的4.0.1 ICS进行测试.

android android-theme

9
推荐指数
1
解决办法
374
查看次数

android.intent.action.PACKAGE_ADDED BroadcastReceiver没有在JB 4.1上接收主题添加的意图

我在我的Android应用程序中使用BroadcastReceiver,我在JB 4.1上运行我的应用程序

在清单中我注册为

<receiver android:name=".ThemeInstalledBroadcastReceiver" android:enabled="true">
    <intent-filter android:priority="100">
        <action android:name="android.intent.action.PACKAGE_ADDED" />
        <action android:name="android.intent.action.PACKAGE_REMOVED" />
        <data android:scheme="package" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

当我安装任何应用程序时,ThemeInstalledBroadcastReceiver类被触发,但是当我安装一些主题时,ThemeInstalledBroadcastReceiver就不会被触发.但是当我在JB 4.2上运行它时,这个应用程序工作正常

我的接收器代码是这样的

public class ThemeInstalledBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent arg1) {
        System.out.println("Mass_TC inside InstalledBroadcastReceiver res " + arg1.getAction().equals(Intent.ACTION_PACKAGE_ADDED) );
        System.out.println("Mass_TC apkid " + arg1.getData().getEncodedSchemeSpecificPart() + " intent : " + arg1);

    }

}
Run Code Online (Sandbox Code Playgroud)

我安装应用程序时记录日志

I/System.out(19647): Mass_TC apkid com.example.ttest intent : Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.example.ttest flg=0x8000010 cmp=com.myrrom.themechooser/.InstalledBroadcastReceiver (has extras) }
I/System.out(19647): Mass_TC deleting apkid …
Run Code Online (Sandbox Code Playgroud)

java android android-4.2-jelly-bean

9
推荐指数
1
解决办法
4025
查看次数

使用属性路由为Web Api构建URL视图

如何在我看来从web api获取网址?

示例(来自msdn-blog):

[RoutePrefix("reviews")]
public class ReviewsController : ApiController
{
    // eg.: /reviews
    [Route]
    public IHttpActionResult Get() { ... }
    // eg.: /reviews/5
    [Route("{reviewId}")]
    public IHttpActionResult Show(int reviewId) { ... }
    // eg.: /reviews/5/edit
    [Route("{reviewId}/edit")]
    public IHttpActionResult Edit(int reviewId) { ... }
}
Run Code Online (Sandbox Code Playgroud)

现在我想在我的视图中构建"/ reviews/edit",我该怎么做?

我尝试创建一个小扩展方法,但它要求我给每个路由一个实际的"RouteName".有没有我可以使用的方法(比如在MVC中)我可以通过控制器和动作?

@Url.Action("Edit", "Reviews)
Run Code Online (Sandbox Code Playgroud)

我现在使用的方法(使用RouteName)也不允许我使用整数作为参数(除非我传递一个默认值).如果我确实需要命名我的所有路由,我如何创建路由URL,但是在我的请求的"数据"部分中传递我的参数?

目前的方法:

public static string ResolveWebApiRoute(this UrlHelper urlHelper, string routeName, object routeValues = null)
{
    var newRouteValues = new RouteValueDictionary(routeValues);
    newRouteValues.Add("httproute", true);

    return urlHelper.RouteUrl(routeName, newRouteValues);
}
Run Code Online (Sandbox Code Playgroud)

编辑

当我使用类似的方法时Url.RouteUrl(new { …

c# asp.net-mvc asp.net-web-api attributerouting

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

C++如何避免浮点算术错误

我正在编写一个使用float递增的循环,但是我遇到了以下示例中说明的浮点算术问题:

for(float value = -2.0; value <= 2.0; value += 0.2)
    std::cout << value << std::endl;
Run Code Online (Sandbox Code Playgroud)

这是输出:

-2
-1.8
-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4
-0.2
1.46031e-07
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
Run Code Online (Sandbox Code Playgroud)

我到底为什么要1.46031e-07而不是0?我知道这与浮点错误有关,但是我无法理解它为什么会发生以及我应该做些什么来防止这种情况发生(如果有办法).有人可以解释(或指向我的链接),这将有助于我理解?任何输入都表示赞赏.谢谢!

c++ floating-point floating-point-precision

8
推荐指数
5
解决办法
2万
查看次数

艾略特波浪计算器,图表模式识别

我正在寻找Python/Java代码来查找Elliot Waves:

我也在寻找用于图表模式识别的Python/Java代码,如autochartist和pattern explorer所做的那样.请看以下链接:

任何帮助都会很棒.

c++ python java trading algorithmic-trading

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

ado.net mvc3元组在模型和单个视图中使用

我有以下ADO模型

学生 ID,姓名课程 ID,姓名,Student_ID

我已经为它做了以下观点

@model Tuple<MvcApplication4.Models.Course, MvcApplication4.Models.Student >
@{
    ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Course</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Item1.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Item1.Name)
            @Html.ValidationMessageFor(model => model.Item1.Name)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.Item1.S_ID, "Student")
        </div>
            <fieldset>
        <legend>Student</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.Item2.Name)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Item2.Name)
            @Html.ValidationMessageFor(model => model.Item2.Name)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Item2.Class)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Item2.Class)
            @Html.ValidationMessageFor(model => model.Item2.Class)
        </div>

        <p>
            <input type="submit" …
Run Code Online (Sandbox Code Playgroud)

tuples asp.net-mvc-3

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

Java:缺少数据库错误

我收到以下错误:

java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (no such table: apartments)
Run Code Online (Sandbox Code Playgroud)

实际上,该表确实存在.以下是我的代码:

try {
    // load the sqlite-JDBC driver using the current class loader
    Class.forName("org.sqlite.JDBC");
    Connection connection = null;
    // create a database connection
    connection = DriverManager.getConnection("jdbc:sqlite:/Path/To/apartments.db");
    System.out.println(connection.getMetaData());
    Statement statement = connection.createStatement();
    statement.setQueryTimeout(30);

    ResultSet rs = statement.executeQuery("select * from apartments");
    while(rs.next()) {
        // read the result set
        System.out.println("TEXT = " + rs.getString("display_text"));
        System.out.println("X1 = " + rs.getInt("x1"));
    }
} catch (Exception ex) {
    Logger.getLogger(MouseEventDemo.class.getName()).log(Level.SEVERE, null, ex);
}
Run Code Online (Sandbox Code Playgroud)

java database sqlite sqlexception

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

防止按下 Enter 键时多次调用 keypress 方法

我正在使用 HTML 输入标签制作一个简单的搜索栏:

<input type="text" id="search_bar" />
Run Code Online (Sandbox Code Playgroud)

然后在 jQuery 中,我实现了 keypress 方法来检测用户何时按下 Enter/Return 键:

$('#search_bar').keypress(function(e) {
    if(e.keyCode == 13 && !e.shiftKey) { // enter/return
        e.preventDefault();
        //do stuff
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,如果用户决定按住回车键,则该方法将被多次调用。我想禁用此行为,即keypress仅在用户按 Enter 键时调用一次,但在按住该键时不会再次调用。实现这一目标的最佳方法是什么?

谢谢。

html javascript jquery input

6
推荐指数
2
解决办法
9143
查看次数

根据显示的标题长度动态定位ActionBar Spinner的右上角箭头

在Google+应用中,右角箭头的位置ActionBar Spinner适应当前字符串显示的长度.例如,当选择" 家庭"时,与选择" 熟人"时相比,Spinner的长度似乎更短.

我需要做什么才能让右角箭头根据标题的长度动态定位?我的猜测是我可以在styles.xml中设置一个属性来为我做这个.

这是我的styles.xml:

<style name="MyStyle" parent="android:style/Theme.Holo">
    <item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
</style>

<style name="MyDropDownNav" parent="android:style/Widget.Holo.Spinner">
    <item name="android:AttributeHere">AttributeValue</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这是我在MainActivity.java中的代码:

ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

// Specify a SpinnerAdapter to populate the dropdown list.
SpinnerAdapter dataAdapter = new ArrayAdapter<String>(
        actionBar.getThemedContext(),
        android.R.layout.simple_list_item_1, android.R.id.text1,
        new String[] { "AAAAAAAAAAAAAAA", "BB" });

// Set up the dropdown list navigation in the action bar.
actionBar.setListNavigationCallbacks(dataAdapter, this);
Run Code Online (Sandbox Code Playgroud)

与Google+不同,我的右箭头的位置始终是固定的.因此,如果我从下拉列表中选择"AAAAAAAAAAAAAAA"到"BB",则箭头根本不会移动.

android android-ui android-spinner android-actionbar

5
推荐指数
1
解决办法
1378
查看次数