android - 如何在android中构建键盘提示布局

标签 android android-layout android-linearlayout android-softkeyboard android-relativelayout

enter image description here

现在我已经使用线性布局创建了键盘布局,每个键都是一个图像,例如“Q”、“W”、“E”是不同的图像。

问题是,如何在上面添加提示图片?这个想法是,默认情况下隐藏提示图像,当用户长按该键时,显示提示图像。

我有一组提示图片。有什么想法可以将它们添加到键盘布局吗?

非常感谢您的帮助。这是键盘布局引用

<LinearLayout
        android:id="@id/training_keyboard"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentBottom="true"
        android:padding="5dp"
        android:background="@color/colorBg">

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="10"
            android:gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/key1"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="手"
                android:src="@drawable/keyboard_letter_r1_1" />

            <ImageView
                android:id="@+id/key2"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="田"
                android:src="@drawable/keyboard_letter_r1_2" />

            <ImageView
                android:id="@+id/key3"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="水"
                android:src="@drawable/keyboard_letter_r1_3" />

            <ImageView
                android:id="@+id/key4"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="口"
                android:src="@drawable/keyboard_letter_r1_4" />

            <ImageView
                android:id="@+id/key5"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="廿"
                android:src="@drawable/keyboard_letter_r1_5" />

            <ImageView
                android:id="@+id/key6"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="卜"
                android:src="@drawable/keyboard_letter_r1_6" />

            <ImageView
                android:id="@+id/key7"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="山"
                android:src="@drawable/keyboard_letter_r1_7" />

            <ImageView
                android:id="@+id/key8"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="戈"
                android:src="@drawable/keyboard_letter_r1_8" />

            <ImageView
                android:id="@+id/key9"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="人"
                android:src="@drawable/keyboard_letter_r1_9" />

            <ImageView
                android:id="@+id/key10"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="心"
                android:src="@drawable/keyboard_letter_r1_10" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="10"
            android:gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/key11"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="日"
                android:src="@drawable/keyboard_letter_r2_1" />

            <ImageView
                android:id="@+id/key12"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="尸"
                android:src="@drawable/keyboard_letter_r2_2" />

            <ImageView
                android:id="@+id/key13"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="木"
                android:src="@drawable/keyboard_letter_r2_3" />

            <ImageView
                android:id="@+id/key14"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="火"
                android:src="@drawable/keyboard_letter_r2_4" />

            <ImageView
                android:id="@+id/key15"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="土"
                android:src="@drawable/keyboard_letter_r2_5" />

            <ImageView
                android:id="@+id/key16"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="竹"
                android:src="@drawable/keyboard_letter_r2_6" />

            <ImageView
                android:id="@+id/key17"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="十"
                android:src="@drawable/keyboard_letter_r2_7" />

            <ImageView
                android:id="@+id/key18"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="大"
                android:src="@drawable/keyboard_letter_r2_8" />

            <ImageView
                android:id="@+id/key19"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:tag="中"
                android:padding="2dp"
                android:src="@drawable/keyboard_letter_r2_9" />

        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="10"
            android:gravity="center"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/sound"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="2"
                android:padding="2dp"
                android:src="@drawable/sound_on" />

            <ImageView
                android:id="@+id/key20"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="難"
                android:src="@drawable/keyboard_letter_r3_1" />

            <ImageView
                android:id="@+id/key21"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="金"
                android:src="@drawable/keyboard_letter_r3_2" />

            <ImageView
                android:id="@+id/key22"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="女"
                android:src="@drawable/keyboard_letter_r3_3" />

            <ImageView
                android:id="@+id/key23"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="月"
                android:src="@drawable/keyboard_letter_r3_4" />

            <ImageView
                android:id="@+id/key24"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="弓"
                android:src="@drawable/keyboard_letter_r3_5" />

            <ImageView
                android:id="@+id/key25"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="1"
                android:padding="2dp"
                android:tag="一"
                android:src="@drawable/keyboard_letter_r3_6" />

            <ImageView
                android:id="@+id/reload"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:adjustViewBounds="true"
                android:layout_weight="2"
                android:padding="2dp"
                android:src="@drawable/reload" />

        </LinearLayout>
</LinearLayout>

最佳答案

使用弹出窗口。在您的关键 View 上方显示 popupView。

private void showPopUp(View v) {  
    LinearLayout layout = new LinearLayout(this);  
    layout.setBackgroundColor(Color.GRAY);  
    TextView tv = new TextView(this);  
    tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));  
    tv.setText("I'm a pop -----------------------------!");  
    tv.setTextColor(Color.WHITE);  
    layout.addView(tv);  

    popupWindow = new PopupWindow(layout,120,120);  

    popupWindow.setFocusable(true);  
    popupWindow.setOutsideTouchable(true);  
    popupWindow.setBackgroundDrawable(new BitmapDrawable());  

    int[] location = new int[2];  
    v.getLocationOnScreen(location);  

    popupWindow.showAtLocation(v, Gravity.NO_GRAVITY, location[0], location[1]-popupWindow.getHeight());  
}  

关于android - 如何在android中构建键盘提示布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41163041/

相关文章:

Android Studio Mediaplayer如何淡入淡出

android - 如何创建显示图像的自定义形状?

android - ThreeTenABP 日期时间解析器给出 yyyy-MM-ddTHH :mm:ss formate 的异常

java - 单击抽屉导航上的字符串/链接可加载本地 HTML 页面

android - 微调点击效果不能包含里面的 View

android - 嵌套的线性布局按钮文本在末尾被裁掉

android - listview addFooterView 问题

android - 如何将动态创建的LinearLayout添加到ScrollView中?

android - 如何让AppBar固定在底部

android - ViewPager 不绘制以后的 fragment