A Xamarin Android project.
This project is Android phone part of the interactive display for OPPO at 2017 Mobile World Congress (MWC) @Barcelona. It contains a RecyclerView for scrolling a vertical list of stripped images. It contains a TCP server. The scrolling speed and scrolled amount of the RecylcerView are sent to a TCP client connected to the phone either via Wifi or a USB cable, through ADB port forwarding. Note the TCP client is not part of this project. 2022-03-15 update The original android.support.v7.widget package has been migrated and replaced by andoirdx.recyclerview.widget and the target Android Framework has been updated to Android 10 - API 29
This project works with either one of the following repositories, which acts as a TCP client.
- OPPO_TcpClientThread - a TCP client C#.NET Windows Form program for testing messages received from the phone server.
- OPPO_ImageSequence - a TCP client OpenFrameworks program for production use in the MWC OPPO interactive display.
Originally, we can have a 1080 x (1920 x n), (or anything that is in accordance to the aspect ratio and/or resolution of the phone), bottom-and-top-continuous image. Then we can divide this original image into a vertical list of stripped images by running the following Image Magick command for tile cropping / sub-dividing one image into multiple images.
$ magick convert phoneimage.jpg -crop 1080x48 +repage +adjoin phoneimage_1080x48_%05d.jpg
The magic number 48 in the command is because of the fact that 1920 is divisible by 48. Therefore, the above command divides a 1080 x 1920 image into fifty 1080 x 48 images.
To connect a TCP client of OPPO_TcpClientThread to the TCP server run in this phone's program, one has to run the following ADB port forwarding command on the machine which the phone is connected via ADB.
$ adb forward tcp:12580 tcp:10086
On the other hand, OPPO_ImageSequence is programmed to run the above ADB port forwarding command itself.