0

我有一些数字字符图像,如下图所示:

在此处输入图像描述在此处输入图像描述在此处输入图像描述在此处输入图像描述..... ETC

现在,我想要的是,当用户单击数字键盘“1”时,打印上面图像中的 1 图像,当用户单击数字键盘“2”时,打印上面图像中的 2 图像。

4

3 回答 3

1

将 ImageView 添加到您的布局文件中,假设文件名是main.xml

<ImageView android:id="@+id/digitImage" android:layout_width="wrap_content"
    android:layout_height="wrap_content">

在加载此布局文件的 Activity 中:

// declare digitImage as an instance variable
ImageView mDigitImage;
public void onCreate(Context ctx, AttributeSet attr) {
    // ... some init code..
    setContentView(R.layout.main);
    mDigitImage = (ImageView) findViewById(R.id.digitImage);
}

// in onKeyDown method
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch (keyCode) {
        case KeyEvent.KEYCODE_1:
            mDigitImage.setImageResource(R.drawable.digit1);
            break;
        case KeyEvent.KEYCODE_2:
            mDigitImage.setImageResource(R.drawable.digit2);
            break;
        case KeyEvent.KEYCODE_3:
            ....
    }
}
于 2012-05-05T06:49:23.060 回答
1

您可以使用此图像创建字体,然后将它们添加到项目的资产文件夹中。

在您的 Activity 的 onCreate() 中:

Typeface someFontTypeFace = Typeface.createFromAsset(getAssets(), "fonts/some_font.ttf");
EditText editText = (EditText) findViewById(R.id.editText);
editText.setTypeface(someFontTypeFace);

我这样做是为了在我的项目中显示波斯和数字数字,它对我来说很好:

在此处输入图像描述---- 在此处输入图像描述

于 2012-05-05T07:00:13.037 回答
0

首先你需要创建一个地图,如:

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

并像这样设置值:

map.put(KeyEvent.KEYCODE_0, R.drawable.0);
map.put(KeyEvent.KEYCODE_1, R.drawable.1);
.....

在 onKeyDown() 方法中:

public boolean onKeyDown(int keyCode, KeyEvent event) {

       Integer image = map.get(keyCode);
       if(image != null) {
           imageView.setImageResource(image);
       }
        return super.onKeyDown(keyCode, event);
    }
于 2012-05-05T06:49:38.693 回答