使用PiTFT +和处理的Raspberry Pi:点击更改屏幕

时间:2016-01-31 12:53:35

标签: processing raspberry-pi2 touchscreen

我想要实现的目标如下:

  • 设置是带有PiTFT +触摸屏的Raspberry Pi,分辨率为480x320px;没有连接鼠标或物理键盘,只有PiTFT +触摸屏;
  • 从教程我学会了如何在不同区域划分PiTFT +屏幕的画布,以便它可以包含图像(例如图标,徽标等......根据需要);
  • 想象一下PiTFT的欢迎画面(所谓的草图)如下所示:
PImage photo;
PImage photo1;
PImage logo;
void setup() {
 size(480,320);
 photo = loadImage("information.jpg");
 photo1 = loadImage("question.jpg");
 logo = loadImage("logo.png");
 fill(0, 0, 0);
 rect(0, 0, 80, 80);
 fill(50, 205, 50);
 rect(80, 0, 320, 320);
 fill(0, 0, 0);
 rect(400, 0, 480, 80);
 }
void draw() {
image(photo, 0, 0);
image(photo1, 400,0);
image(logo, 80, 0);
}

编译完上述代码后,屏幕中间会显示一个徽标,两个顶边都会显示两个方框。现在问题是:

  • 在用户点击顶部边缘的一张图片上的触摸屏后,我们怎样才能显示新的草图/屏幕 - photo或photo1?新草图本身有一个图像容器,底部有两个较小的图像,带有箭头导航(左和右)。单击箭头应更改屏幕上显示的图像。

  • 这样的功能可能吗?

我的研究发现了许多不同的库,而是用于控制外部设备,例如: LED或绘制特定动画。 Processing门户的参考部分显示了许多可以使用的功能: https://processing.org/reference/

  • 这里也是一个允许与外围设备通信的库: IO库

  • 以及用于GUI控制和基本事件处理系统的库: 用于处理库的G4p GUI

非常感谢您对此的帮助。对于我来说,任何事情都是一个很好的研究起点,假设上面的任务形式属于处理范围。

1 个答案:

答案 0 :(得分:0)

最简单的方法是在单个草图中使用变量,根据这些变量显示不同的“状态”。像这样:

//0 is buttons, 1 is red, 2 is green
int mode = 0;

void setup() {
  size(200, 100);
}

void mousePressed() {
  if (mode == 0) {
    if (mouseX < 100) {
      mode = 1;
    } 
    else {
      mode = 2;
    }
  }
}

void draw() {
  if (mode == 0) {
    fill(255, 0, 0);
    rect(0, 0, 100, 100);
    fill(0, 255, 0);
    rect(100, 0, 100, 100);
  } 
  else if (mode == 1) {
    background(255, 0, 0);
  } 
  else if (mode == 2) {
    background(0, 255, 0);
  }
}

您可以使用GUI库来绘制按钮并为您处理点击事件,但基本思路是相同的:不使用启动第二个草图,只需使用变量来控制单个草图中的“模式”。