小编spr*_*lls的帖子

如何擦除Canvas上的先前绘图?

我有一张背景图片(地图),我需要在其上定期绘制你在这​​里的图标.我使用Canvas在地图上绘制图标.假设在单击按钮时触发绘制过程(请参阅下面的代码),如何删除上一个绘图?

private void displayUserPos(Point userPos) {
    Bitmap marker = BitmapFactory.decodeResource(getResources(), R.drawable.ic_yah);
    canvas.drawBitmap(marker, (float)userPos.getX(), (float)userPos.getY(), null);
    imgView.setImageBitmap(fmOverlay);
}
Run Code Online (Sandbox Code Playgroud)

android drawing canvas

22
推荐指数
3
解决办法
5万
查看次数

如何在Android上停止wifi扫描?

是否可以通过wifiMgr.startScan()停止wifi扫描?我浏览一些帖子并阅读有关使用线程在每次结果传递之间给出间隔的信息.但如果我想完全停止这个过程,我该如何实现呢?

android wifi

7
推荐指数
1
解决办法
7565
查看次数

在位图顶部绘制文本失败

我想在图像上显示一个点和一个文本.我已经尝试了几个关于覆盖位图的教程,但它似乎不起作用.这是显示背景图像的代码.

mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.roomplan);
mIV = (ImageView)findViewById(R.id.ImageView01);
mIV.setImageBitmap(mBitmap); 
mIV.invalidate();

btnDraw = (Button)findViewById(R.id.Button01);
btnDraw.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)

然后在OnClickListener上,我定义另一个位图并绘制点和文本.

Bitmap bmOverlay = Bitmap.createBitmap(mBitmap.getWidth(), mBitmap.getHeight(), 
    Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(bmOverlay);
Paint paint = new Paint();
paint.setColor(Color.CYAN);
paint.setTextSize(20);
paint.setFlags(Paint.ANTI_ALIAS_FLAG);
canvas.drawText("You are here", 100, 100, paint);
canvas.drawPoint(30.0f, 50.0f, paint);
canvas.drawBitmap(bmOverlay, 0, 0, null);
Run Code Online (Sandbox Code Playgroud)

即使我删除图像,背景图像上也不会显示任何内容.有什么提示吗?

更新:工作代码

// get a reference to the background image
mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.raumplan_isst);

mIV = (ImageView)findViewById(R.id.ImageView01);

// create a mutable bitmap with the same size as the background image
Bitmap bmOverlay …
Run Code Online (Sandbox Code Playgroud)

graphics android overlay bitmap

7
推荐指数
1
解决办法
6904
查看次数

getConnectionInfo()和getScanResults()之间的差异,以检测信号强度的变化

我正在尝试检测wifi连接中的信号强度变化.我对我应该在BroadcastReceiver中使用哪种方法感到困惑.使用getConnectionInfo()和getScanResults()之间有什么区别 - 然后我可以使用相关方法来获取rssi值?

例如:如果我使用getConnectionInfo(),那么稍后我会使用getRssi().或者我可以使用getScanResults()和"level"属性.

我使用Toast显示它们的值,但它并不总是显示相同的值.当wifi conn丢失时,getConnectionInfo().getRssi()显示-200,而result.level仍显示其先前的值.

有什么想法吗?谢谢!

String netSSID = wifi.wifiMgr.getConnectionInfo().getSSID();
int netRSSI = wifi.wifiMgr.getConnectionInfo().getRssi();

List<ScanResult> results = wifi.wifiMgr.getScanResults();
for (ScanResult result : results) {
    if (result.SSID.equalsIgnoreCase(netSSID)) {
        anothernetRSSI = result.level;
    }
}
Run Code Online (Sandbox Code Playgroud)

android rssi wifi

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

获得相机焦距OpenCV Android

我可以使用Android中的相机参数获得焦距,如下所示:

Camera.Parameters parameters = camera.getParameters();
Log.d(TAG, "Focal length:"+parameters.getFocalLength());
Run Code Online (Sandbox Code Playgroud)

它给了我3.97(正确).由于我在项目中使用OpenCV,我想使用已经提供的变量,即:

Log.d(TAG, "Focal length:"+Highgui.CV_CAP_PROP_ANDROID_FOCAL_LENGTH);
Run Code Online (Sandbox Code Playgroud)

但它给了我8005的结果.我是OpenCV的新手,所以如果有人能给我一个提示,我会非常感激.

android opencv android-camera

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

自定义警报对话框未显示

我想显示一个自定义警报对话框,其结构已在XML文件中定义.这是我使用的代码.

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(findViewById(R.layout.inputform));
builder.show();
Run Code Online (Sandbox Code Playgroud)

单击按钮时会触发它.但是,窗口没有显示出来.我在屏幕顶部有一个透明的灰色层,无法点击任何东西.但是,使用setMessage或显示复选框等一些基本代码效果很好.任何人都可以指出我做错了吗?

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" android:layout_height="fill_parent">

<TableLayout android:id="@+id/TableLayout01"
    android:layout_width="fill_parent" android:layout_height="fill_parent">

<TableRow android:id="@+id/TableRow01" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:text="Room name" android:id="@+id/TextView01"
        android:layout_width="fill_parent" android:layout_height="wrap_content"/>
    <EditText android:hint="Enter room name" android:id="@+id/EditText01"
        android:layout_width="0dp" android:layout_height="wrap_content"
        android:layout_weight="1"/>
</TableRow>

<TableRow android:id="@+id/TableRow02" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:text="Point id" android:id="@+id/TextView02"
        android:layout_width="fill_parent" android:layout_height="wrap_content"/>
    <EditText android:hint="Enter point id" android:id="@+id/EditText02"
        android:layout_width="0dp" android:layout_height="wrap_content"
        android:layout_weight="1"/>
</TableRow>

<TableRow android:id="@+id/TableRow03" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button android:text="OK" android:id="@+id/btnOK"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>
</TableRow>

</TableLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android android-alertdialog

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