我想实现的效果如下:
上面是定义的一个textView,下面是定义的一个textSwitch,分别用来显示图片的代号,切换一张显示相应的号,代码如下:
tv = (TextView) findViewById(R.id.textView1); ts = (TextSwitcher) findViewById(R.id.textSwitcher1); ts.setFactory(this); SDPATH = Environment.getExternalStorageDirectory()+"/PIC/dong.png";
galleryFlow.setOnItemSelectedListener(this);//焦点改变的时候相应的变化 galleryFlow.setSelection(1); tv.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub savePic(getViewBitmap(getWindow().getDecorView()),SDPATH);//截取当前屏幕 Toast.makeText(getApplicationContext(), "savePic success!!!", Toast.LENGTH_SHORT).show(); Log.d("tag", "success!!!"); } }); } public static Bitmap getViewBitmap(View v) { v.clearFocus(); v.setPressed(false); // 能画缓存就返回false boolean willNotCache = v.willNotCacheDrawing(); v.setWillNotCacheDrawing(false); int color = v.getDrawingCacheBackgroundColor(); v.setDrawingCacheBackgroundColor(0); if (color != 0) { v.destroyDrawingCache(); } v.buildDrawingCache(); Bitmap cacheBitmap = v.getDrawingCache(); if (cacheBitmap == null) { // Log.e(TAG, "failed getViewBitmap(" + v + ")", new // RuntimeException()); return null; } Bitmap bitmap = Bitmap.createBitmap(cacheBitmap); // Restore the view v.destroyDrawingCache(); v.setWillNotCacheDrawing(willNotCache); v.setDrawingCacheBackgroundColor(color); return bitmap; } // 保存到sdcard // savePic(getViewBitmap(v), "sdcard/xx.png"); private static void savePic(Bitmap b, String strFileName) { FileOutputStream fos = null; try { fos = new FileOutputStream(strFileName); if (null != fos) { b.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } @Override public View makeView() { // TODO Auto-generated method stub TextView tv = new TextView(this); tv.setTextSize(30); return tv; } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { // TODO Auto-generated method stub Log.d("tag", "position--->"+position); tv.setText(temp1[position]); ts.setText(temp1[position]); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub Log.d("tag", "onNothingSelected"); }