Amy*_*Amy 4 string android bitmap button textview
我在Android开发初学者,我试图制定一个计划,使用户可以将文本显示在TextView的(TextView中显示的是我已经从资产导入的39码条码字体的文本)按下后位图"转换为位图!" 按钮.我试过搜索谷歌,但我只是设法得到答案,如将字符串转换为位图,没有指南在哪里键入代码,所以我很混淆.我尝试使用我在谷歌搜索后尝试输入的代码来运行程序,但每次按下转换按钮时它都会崩溃.
真的希望你能帮忙!先感谢您!:d
以下是我目前的代码: -
*关于西蒙的代码编辑
在java:
public class MainActivity extends Activity
implements OnClickListener {
//Called when activity is first created
TextView tv1;
ImageView iv;
Button b;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv1 = (TextView) findViewById(R.id.txtV);
tv1.setDrawingCacheEnabled(true);
//To change to code 39 barCode font
Typeface barcodefont = Typeface.createFromAsset(getAssets(),
"fonts/IDAutomationHC39M_FREE.otf");
TextView tv = (TextView) findViewById(R.id.txtV);
tv.setTypeface(barcodefont);
}
public void onClick(View v) {
tv1.buildDrawingCache();
iv.setImageBitmap(tv1.getDrawingCache());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
Logcat错误:
10-04 06:33:25.076: E/AndroidRuntime(1423): FATAL EXCEPTION: main
10-04 06:33:25.076: E/AndroidRuntime(1423): java.lang.IllegalStateException: Could not find a method ConvertText(View) in the activity class com.example.txtvbitmapconverter.MainActivity for onClick handler on view class android.widget.Button with id 'btnConvert'
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.view.View$1.onClick(View.java:3578)
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.view.View.performClick(View.java:4084)
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.view.View$PerformClick.run(View.java:16966)
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.os.Handler.handleCallback(Handler.java:615)
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.os.Handler.dispatchMessage(Handler.java:92)
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.os.Looper.loop(Looper.java:137)
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.app.ActivityThread.main(ActivityThread.java:4745)
10-04 06:33:25.076: E/AndroidRuntime(1423): at java.lang.reflect.Method.invokeNative(Native Method)
10-04 06:33:25.076: E/AndroidRuntime(1423): at java.lang.reflect.Method.invoke(Method.java:511)
10-04 06:33:25.076: E/AndroidRuntime(1423): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-04 06:33:25.076: E/AndroidRuntime(1423): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-04 06:33:25.076: E/AndroidRuntime(1423): at dalvik.system.NativeStart.main(Native Method)
10-04 06:33:25.076: E/AndroidRuntime(1423): Caused by: java.lang.NoSuchMethodException: ConvertText [class android.view.View]
10-04 06:33:25.076: E/AndroidRuntime(1423): at java.lang.Class.getConstructorOrMethod(Class.java:460)
10-04 06:33:25.076: E/AndroidRuntime(1423): at java.lang.Class.getMethod(Class.java:915)
10-04 06:33:25.076: E/AndroidRuntime(1423): at android.view.View$1.onClick(View.java:3571)
10-04 06:33:25.076: E/AndroidRuntime(1423): ... 11 more
Run Code Online (Sandbox Code Playgroud)
试试这个
添加到你的onCreate()
tv1.setDrawingCacheEnabled(true);
Run Code Online (Sandbox Code Playgroud)
然后在你的onClick()
tv1.buildDrawingCache();
iv.setImageBitmap(tv1.getDrawingCache());
Run Code Online (Sandbox Code Playgroud)
http://developer.android.com/reference/android/view/View.html#buildDrawingCache(boolean)
http://developer.android.com/reference/android/view/View.html#getDrawingCache(boolean)
[编辑]
您现在遇到的问题是您在tv1存在之前尝试启用绘图缓存.
你应该做这个:
TextView tv1 = (TextView) findViewById(R.id.txtV);
tv1.setDrawingCacheEnabled(true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8878 次 |
| 最近记录: |