AsciiPanelView

Additional

Language
Kotlin
Version
N/A
Created
Aug 16, 2017
Updated
Aug 24, 2017 (Retired)
Owner
Alexander Roman (Prokky)
Contributor
Alexander Roman (Prokky)
1
Activity
Badge
Generate
Download
Source code

Advertisement

AsciiPanelView

Port of AsciiPanel library to Android View on Kotlin

Usage

To include this library to your project add dependency in build.gradle file:

dependencies {
    implementation 'com.prokkypew:asciipanelview:1.0'
}

Documentation

Simply add AsciiPanelView to your layout.
There are few XML attributes that may help you configuring the view:

<com.prokkypew.asciipanelview.AsciiPanelView
        android:id="@+id/panelView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:panelWidth="64"                     //Panel width in symbols. Default is 64
        app:panelHeight="27"                    //Panel height in symbols. Default is 27
        app:defaultCharColor="#ffffff"          //Character color. Default is Color.BLACK
        app:defaultBackgroundColor="#000000"    //Characted background color. Default is Color.WHITE
        app:fontFamily="font.ttf"/>             //Name of your custom font file in /assets folder

More documentation available at https://prokky.github.io/AsciiPanelView/

Example

class MainActivity : AppCompatActivity(), AsciiPanelView.OnCharClickedListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        findViewById<AsciiPanelView>(R.id.panel)
                .writeChar('g', 2, 2, Color.RED, Color.YELLOW)
                .setCursorPosition(14, 15)
                .writeCharWithColor('p', Color.RED, Color.YELLOW)
                .writeString("We", 16, 17, Color.RED, Color.YELLOW)
                .writeCenter("Center TEXT String", 5, Color.YELLOW, Color.CYAN)
                .onCharClickedListener = this
    }

    override fun onCharClicked(x: Int?, y: Int?, char: AsciiPanelView.ColoredChar) {
        Log.d("char", "char clicked:" + x + ":" + y + " = " + char.char)
        panel.clearRect(' ', 0, 1, panel.panelWidth, 1)
                .writeCenter("x:" + x + " y:" + y + " char:" + char.char, 1)
    }
}

More complicated examples of library usage you can find in another project of mine:Infinite Cavy Story

Thanks

Big thanks to Trystan Spangler, the author of original AsciiPanel

License

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.