我正在开发一个应用程序,我需要在java代码中以编程方式创建自定义键盘的行和键,而不是使用XML。 这可能吗 ?如果是,我们如何做到这一点。
目前,我正在使用XML并以这种方式创建行: -
<Keyboard android:keyWidth="10.0%p"
android:keyHeight="@dimen/key_height" android:horizontalGap="0.0px"android:verticalGap="0.0px"
xmlns:android="http://schemas.android.com/apk/res/android">
<Row android:rowEdgeFlags="top" >
<Key android:codes="-21" android:keyIcon="@drawable/arbiclinenew" />
<Key android:codes="-51" android:keyIcon="@drawable/recentlinenew" />
</Row>
基本上,我需要在键盘上显示"recent"
视图,该视图会显示用户最近选择的所有表情符号,与whatsapp相同。
请帮忙...... !!!!
答案 0 :(得分:1)
最后,我可以创建自己的自定义键盘。我们可以创建自定义键盘布局来显示最近的按钮。例如:
String mimeType = "video/avc";
decoder = MediaCodec.createDecoderByType(mimeType);
mformat = MediaFormat.createVideoFormat(mimeType, 1920, 1080);
while (!Thread.interrupted()) {
byte[] data = new byte[size];
bin.read(data, 0, size);
if (data is SPS frame) {
mformat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, 0);
mformat.setByteBuffer("csd-0", ByteBuffer.wrap(data));
continue;
}
if (data is PPS frame) {
mformat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, 0);
mformat.setByteBuffer("csd-1", ByteBuffer.wrap(data));
decoder.configure(mformat. surface, null, 0);
decoder.start();
is_decoder_configured = true;
continue;
}
if (!is_decoder_configured)
continue;
index = decoder.dequeueInputBuffer(1000);
if (index < 0) {
Log.e(TAG, "Dequeue in put buffer failed..\n");
continue;
}
buf = decoder.getInputBuffer(index);
if (buf == null)
continue;
buf.put(data);
decoder.queueInputBuffer(index, 0, data.length, 0, 0);
int outputBufferId = decoder.dequeueOutputBuffer(info, 1000);
switch (outputBufferId) {
case MediaCodec.INFO_OUTPUT_FORMAT_CHANGED:
Log.i("DecodeActivity", "New format " + decoder.getOutputFormat());
break;
case MediaCodec.INFO_TRY_AGAIN_LATER:
Log.i("DecodeActivity", "dequeueOutputBuffer timed out!");
break;
default:
Log.i(TAG, "Successfully decoded the output : " + outputBufferId);
decoder.releaseOutputBuffer(outputBufferId, true);
break;
}
}
if (is_decoder_configured()) {
decoder.stop();
decoder.release();
}
现在,假设在任何按键点击时,您需要显示表情符号或任何其他视图,然后我们可以设置键盘可见性:不可见并且可以显示您自己的布局。