[Skip to content](https://github.com/PerfsolTech/EPGView#start-of-content)

You signed in with another tab or window. [Reload](https://github.com/PerfsolTech/EPGView) to refresh your session.You signed out in another tab or window. [Reload](https://github.com/PerfsolTech/EPGView) to refresh your session.You switched accounts on another tab or window. [Reload](https://github.com/PerfsolTech/EPGView) to refresh your session.Dismiss alert

{{ message }}

### Uh oh!

There was an error while loading. [Please reload this page](https://github.com/PerfsolTech/EPGView).

[PerfsolTech](https://github.com/PerfsolTech)/ **[EPGView](https://github.com/PerfsolTech/EPGView)** Public

- [Notifications](https://github.com/login?return_to=%2FPerfsolTech%2FEPGView) You must be signed in to change notification settings
- [Fork\\
8](https://github.com/login?return_to=%2FPerfsolTech%2FEPGView)
- [Star\\
15](https://github.com/login?return_to=%2FPerfsolTech%2FEPGView)


main

[**1** Branch](https://github.com/PerfsolTech/EPGView/branches) [**1** Tag](https://github.com/PerfsolTech/EPGView/tags)

[Go to Branches page](https://github.com/PerfsolTech/EPGView/branches)[Go to Tags page](https://github.com/PerfsolTech/EPGView/tags)

Go to file

Code

Open more actions menu

## Folders and files

| Name | Name | Last commit message | Last commit date |
| --- | --- | --- | --- |
| ## Latest commit<br>[![volodymyrkhodonovych](https://avatars.githubusercontent.com/u/36262967?v=4&size=40)](https://github.com/volodymyrkhodonovych)[volodymyrkhodonovych](https://github.com/PerfsolTech/EPGView/commits?author=volodymyrkhodonovych)<br>[Update README.md](https://github.com/PerfsolTech/EPGView/commit/632a80c2c62c4d67acc0a00d1925bf60449bb52a)<br>2 years agoSep 2, 2024<br>[632a80c](https://github.com/PerfsolTech/EPGView/commit/632a80c2c62c4d67acc0a00d1925bf60449bb52a) · 2 years agoSep 2, 2024<br>## History<br>[31 Commits](https://github.com/PerfsolTech/EPGView/commits/main/) <br>Open commit details<br>[View commit history for this file.](https://github.com/PerfsolTech/EPGView/commits/main/) 31 Commits |
| [.idea](https://github.com/PerfsolTech/EPGView/tree/main/.idea ".idea") | [.idea](https://github.com/PerfsolTech/EPGView/tree/main/.idea ".idea") | [\- added support of dummy items](https://github.com/PerfsolTech/EPGView/commit/888638092c5f50e9b44966b46dc10bf8ff427bcd "- added support of dummy items - small UI fix - added support of dummy navigation") | 3 years agoAug 28, 2023 |
| [app](https://github.com/PerfsolTech/EPGView/tree/main/app "app") | [app](https://github.com/PerfsolTech/EPGView/tree/main/app "app") | [\- add availability to customize show background color](https://github.com/PerfsolTech/EPGView/commit/df3f3cbff575548874c0ad657dee6eab41a35a09 "- add availability to customize show background color") | 3 years agoOct 16, 2023 |
| [epg-recycler](https://github.com/PerfsolTech/EPGView/tree/main/epg-recycler "epg-recycler") | [epg-recycler](https://github.com/PerfsolTech/EPGView/tree/main/epg-recycler "epg-recycler") | [\- add availability to customize show background color](https://github.com/PerfsolTech/EPGView/commit/df3f3cbff575548874c0ad657dee6eab41a35a09 "- add availability to customize show background color") | 3 years agoOct 16, 2023 |
| [gradle/wrapper](https://github.com/PerfsolTech/EPGView/tree/main/gradle/wrapper "This path skips through empty directories") | [gradle/wrapper](https://github.com/PerfsolTech/EPGView/tree/main/gradle/wrapper "This path skips through empty directories") | [Initial commit](https://github.com/PerfsolTech/EPGView/commit/c5051efa19c48660e851ebb45ec2932658512640 "Initial commit") | 4 years agoOct 31, 2022 |
| [.gitignore](https://github.com/PerfsolTech/EPGView/blob/main/.gitignore ".gitignore") | [.gitignore](https://github.com/PerfsolTech/EPGView/blob/main/.gitignore ".gitignore") | [Initial commit](https://github.com/PerfsolTech/EPGView/commit/c5051efa19c48660e851ebb45ec2932658512640 "Initial commit") | 4 years agoOct 31, 2022 |
| [README.md](https://github.com/PerfsolTech/EPGView/blob/main/README.md "README.md") | [README.md](https://github.com/PerfsolTech/EPGView/blob/main/README.md "README.md") | [Update README.md](https://github.com/PerfsolTech/EPGView/commit/632a80c2c62c4d67acc0a00d1925bf60449bb52a "Update README.md") | 2 years agoSep 2, 2024 |
| [build.gradle](https://github.com/PerfsolTech/EPGView/blob/main/build.gradle "build.gradle") | [build.gradle](https://github.com/PerfsolTech/EPGView/blob/main/build.gradle "build.gradle") | [Initial commit](https://github.com/PerfsolTech/EPGView/commit/c5051efa19c48660e851ebb45ec2932658512640 "Initial commit") | 4 years agoOct 31, 2022 |
| [epg\_image.png](https://github.com/PerfsolTech/EPGView/blob/main/epg_image.png "epg_image.png") | [epg\_image.png](https://github.com/PerfsolTech/EPGView/blob/main/epg_image.png "epg_image.png") | [\- add example screenshot](https://github.com/PerfsolTech/EPGView/commit/e539de35a61abb873e38181c95394ddc68a8cbae "- add example screenshot") | 3 years agoOct 16, 2023 |
| [gradle.properties](https://github.com/PerfsolTech/EPGView/blob/main/gradle.properties "gradle.properties") | [gradle.properties](https://github.com/PerfsolTech/EPGView/blob/main/gradle.properties "gradle.properties") | [Initial commit](https://github.com/PerfsolTech/EPGView/commit/c5051efa19c48660e851ebb45ec2932658512640 "Initial commit") | 4 years agoOct 31, 2022 |
| [gradlew](https://github.com/PerfsolTech/EPGView/blob/main/gradlew "gradlew") | [gradlew](https://github.com/PerfsolTech/EPGView/blob/main/gradlew "gradlew") | [Initial commit](https://github.com/PerfsolTech/EPGView/commit/c5051efa19c48660e851ebb45ec2932658512640 "Initial commit") | 4 years agoOct 31, 2022 |
| [gradlew.bat](https://github.com/PerfsolTech/EPGView/blob/main/gradlew.bat "gradlew.bat") | [gradlew.bat](https://github.com/PerfsolTech/EPGView/blob/main/gradlew.bat "gradlew.bat") | [Initial commit](https://github.com/PerfsolTech/EPGView/commit/c5051efa19c48660e851ebb45ec2932658512640 "Initial commit") | 4 years agoOct 31, 2022 |
| [settings.gradle](https://github.com/PerfsolTech/EPGView/blob/main/settings.gradle "settings.gradle") | [settings.gradle](https://github.com/PerfsolTech/EPGView/blob/main/settings.gradle "settings.gradle") | [\- add few custom parameters](https://github.com/PerfsolTech/EPGView/commit/f333a8627a81403d6982b22a021eca343cb9a24c "- add few custom parameters") | 4 years agoOct 31, 2022 |
| View all files |

## Repository files navigation

# EPG View Android Library - TV Schedule Display Library

[Permalink: EPG View Android Library - TV Schedule Display Library](https://github.com/PerfsolTech/EPGView#epg-view-android-library---tv-schedule-display-library)

[![EPG View](https://github.com/PerfsolTech/EPGView/raw/main/epg_image.png?raw=true)](https://github.com/PerfsolTech/EPGView/blob/main/epg_image.png?raw=true)

EPG View Android Library is a powerful tool for creating TV schedule (EPG) viewing interfaces on Android TV and mobile devices based on RecyclerView. It makes it easy to display large sets of data efficiently. It provides a simple and flexible way to display and manage TV channel schedules, allowing users to browse available programs and set reminders easily.

## Features

[Permalink: Features](https://github.com/PerfsolTech/EPGView#features)

- Display the TV schedule as a grid.
- Support for various EPG data sources (Mapping XML, JSON, API to library model).
- Customizable design and styling.
- Program search and filtering capabilities.
- Easy integration into your Android TV or mobile application.
- Supporting D-Pad and touch (or mouse) scrolling

## Installation

[Permalink: Installation](https://github.com/PerfsolTech/EPGView#installation)

To start using the EPGGrid Android Library in your project, add the following dependencies to your `build.gradle` file:

```
dependencies {
    implementation 'com.github.PerfsolTech:EPGView:$epg_latest_version' // Replace with the latest version
}

## Usage
val epgGrid = findViewById(R.id.epg_grid);
epgGrid.initView(
    listOf(
        ChannelModel(
            id = channel.id, // string
            logo = channel.logo, // channel logo url, string
            shows = listOf(
                ShowModel(
                    id = show.id, // string
                    channelId = channel.id, // string
                    name = show.name, // string
                    showPreviewImage = show.previewImage, // string (optional)
                    startDate = show.startDate, // DateTime
                    endTime = show.endTime, // DateTime
                )
            )
        )
    )
)

epgGrid.listener = object : EPGRecyclerView.OnEventListener {
    override fun onShowClick(channelId: String, showId: String) {
        // triggered by enter click with D-Pad (OK button) or mouse click
    }

    override fun onShowExit() {
        // triggered on losing focus from EPG view
    }

    override fun onShowSelected(channelId: String, showId: String) {
        // triggered by navigation through grid with D-Pad or mouse click
    }
}

with(EPGConfig) {
    showBackgroundDrawable = R.drawable.show_background
    channelLogoBackgroundDrawable = R.drawable.epg_channel_logo_background
    rowHeight = 50
    rowLogoHeight = 40
    marginVerticalChannelLogo = 5
}

epgGrid.setStartHour(START_HOUR) // int (from 0 to 23) time from EPG grid started
epgGrid.setEndHour(End_HOUR) // int (from 0 to 23) time to EPG grid end
```

## About

EPGView Android


[perfsol.tech/electronic-programming-guide](https://perfsol.tech/electronic-programming-guide "https://perfsol.tech/electronic-programming-guide")

### Topics

[android](https://github.com/topics/android "Topic: android") [tv](https://github.com/topics/tv "Topic: tv") [android-application](https://github.com/topics/android-application "Topic: android-application") [epg](https://github.com/topics/epg "Topic: epg") [android-ui](https://github.com/topics/android-ui "Topic: android-ui") [android-tv](https://github.com/topics/android-tv "Topic: android-tv") [epgdata](https://github.com/topics/epgdata "Topic: epgdata")

### Resources

[Readme](https://github.com/PerfsolTech/EPGView#readme-ov-file)

### Uh oh!

There was an error while loading. [Please reload this page](https://github.com/PerfsolTech/EPGView).

[Activity](https://github.com/PerfsolTech/EPGView/activity)

[Custom properties](https://github.com/PerfsolTech/EPGView/custom-properties)

### Stars

**15**
stars


### Watchers

**0**
watching


### Forks

[**8**\\
forks](https://github.com/PerfsolTech/EPGView/forks)

[Report repository](https://github.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2FPerfsolTech%2FEPGView&report=PerfsolTech+%28user%29)

## [Releases\  1](https://github.com/PerfsolTech/EPGView/releases)

[0.1.21\\
Latest\\
\\
on Oct 16, 2023Oct 16, 2023](https://github.com/PerfsolTech/EPGView/releases/tag/0.1.21)

## [Packages\  0](https://github.com/orgs/PerfsolTech/packages?repo_name=EPGView)

No packages published

### Uh oh!

There was an error while loading. [Please reload this page](https://github.com/PerfsolTech/EPGView).

## [Contributors\  3](https://github.com/PerfsolTech/EPGView/graphs/contributors)

- [![@romanvolkov650](https://avatars.githubusercontent.com/u/45734126?s=64&v=4)](https://github.com/romanvolkov650)[**romanvolkov650**](https://github.com/romanvolkov650)
- [![@volodymyrkhodonovych](https://avatars.githubusercontent.com/u/36262967?s=64&v=4)](https://github.com/volodymyrkhodonovych)[**volodymyrkhodonovych** Volodymyr](https://github.com/volodymyrkhodonovych)
- [![@romanvolkov7](https://avatars.githubusercontent.com/u/109230504?s=64&v=4)](https://github.com/romanvolkov7)[**romanvolkov7**](https://github.com/romanvolkov7)

## Languages

- [Kotlin100.0%](https://github.com/PerfsolTech/EPGView/search?l=kotlin)

You can’t perform that action at this time.