我正在尝试将我的图片的一部分点击。在这种情况下,我有24端口开关,我希望当用户点击一个端口显示端口号。我已经进行了缩放并尝试在图像上插入矩形,但我仍然是Android开发中的新手,所以我不太确定如何完成任务。
这是我创建矩形并放在图片上的代码: (我的想法是,我有一个类矩形,用于保存端口号和一些文本,以便我可以检索它们)
public class MainActivity extends Activity{
ImageView DrawingImage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DrawingImage = (ImageView) this.findViewById(R.id.image);
Bitmap bitmap2 = Bitmap.createBitmap((int) getWindowManager()
.getDefaultDisplay().getWidth(), (int) getWindowManager()
.getDefaultDisplay().getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap2);
DrawingImage.setImageBitmap(bitmap2);
// Draw Rectangle
Paint paint = new Paint();
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.FILL);
float left = 20;
float top = 20;
float right = 50;
float bottom = 100;
canvas.drawRect(left, top, right, bottom, paint);
Zoom image = (Zoom) findViewById(R.id.image);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);
image.setImageBitmap(bitmap);
int posX=(int)image.getX();
int posY=(int)image.getY();
double height=image.getHeight();
double width=image.getWidth();
}
}
但是当我运行App时,我看不到Rectangle。即使我在矩形之前声明图片,我也只能看到矩形。
有什么建议吗?
任何帮助将不胜感激。
提前谢谢!
祝你好运, Dimtiar Georgiev
答案 0 :(得分:1)
xml layout:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
onCreate方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView DrawingImage = (ImageView) this.findViewById(R.id.imageView2);
Bitmap bitmap2 = Bitmap.createBitmap((int) getWindowManager()
.getDefaultDisplay().getWidth(), (int) getWindowManager()
.getDefaultDisplay().getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap2);
DrawingImage.setImageBitmap(bitmap2);
// Draw Rectangle
Paint paint = new Paint();
paint.setColor(Color.GREEN);
paint.setStyle(Paint.Style.FILL);
float left = 20;
float top = 20;
float right = 50;
float bottom = 100;
canvas.drawRect(left, top, right, bottom, paint);
ImageView image = (ImageView) findViewById(R.id.imageView1);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
image.setImageBitmap(bitmap);
int posX=(int)image.getX();
int posY=(int)image.getY();
double height=image.getHeight();
double width=image.getWidth();
}
它不是你现在先画的东西。这是关于xml布局。先放什么当然,您可能希望使用图像视图的高度和宽度属性来实现您真正想要的。但是我正在测试它。
答案 1 :(得分:0)
这不起作用。你做的方式。
您的设计中必须有两个图像视图。
使用framelayout并在其中放入两个图像视图。
为其中一个设置画布并绘制。
并为另一个设置图像。
它将无效,因为您设置了第一个位图:
DrawingImage.setImageBitmap(bitmap2);
然后你替换它:
image.setImageBitmap(bitmap);
你有相同的图像布局:
R.id.image