我有一些数字角色图像,如下图所示:
.....等
现在,我想要的是,当用户点击数字键盘“1”时,打印上面图像中的1的图像,当用户点击数字键盘“2”时,将打印上述图像中的2的图像。 / p>
那么如何实现呢?
提前致谢。
答案 0 :(得分: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:
....
}
}
答案 1 :(得分:1)
您可以使用此图像创建字体,然后将其添加到项目的资产文件夹中。
在你的活动的onCreate()中:
Typeface someFontTypeFace = Typeface.createFromAsset(getAssets(), "fonts/some_font.ttf");
EditText editText = (EditText) findViewById(R.id.editText);
editText.setTypeface(someFontTypeFace);
我这样做是为了在我的项目中显示波斯语和数字号码,它对我来说很好用:
----
答案 2 :(得分: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);
}