html-layout
html-layout copied to clipboard
Support HTML tags in Android XML layout
trafficstars
Usage
Override LayoutInflater to enabled HTML tags in your layout (see ./example project):
import wtf.g4s8.htmllayout.HtmlInflater;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public Object getSystemService(@NonNull String name) {
if (name.equals(LAYOUT_INFLATER_SERVICE)) {
return new HtmlInflater((LayoutInflater) super.getSystemService(name), getApplicationContext());
}
return super.getSystemService(name);
}
}
That's all - now you can push HTML tags to XML layout:
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".MainActivity">
<html>
<h1>Html tags example</h1>
<p>This is example of HTML tags right in Android layout XML file.</p>
<h3>Unordered list</h3>
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</ul>
</html>
</FrameLayout>
and get it rendered:

Supported tags:
html- root tag for HTML elementsh1,h2,h3,h4,h5,h6- all heading tagsp- paragraph tagol,ul- lists ordered and unorderedli- list item
TODO:
- style customization via theme attributes
I'm not sure if this library can be useful, just wanted to abuse layout inflater service.