Android实现页面图片转换

前端xml代码如下,使用FrameLayout布局。

 <FrameLayout
      android:id="@+id/fl"
      android:layout_width="match_parent"
      android:layout_height="match_parent">

      <ImageView    
          android:layout_width="wrap_content"
          android:layout_height="300dp"
          android:id="@+id/iv1"
          android:src="@drawable/imgshouye"/>
      <ImageView
          android:layout_width="wrap_content"
          android:layout_height="300dp"
          android:id="@+id/iv2"
          android:src="@drawable/looking"
          android:visibility="invisible"/>    //设置图片不可见,默认可见

  </FrameLayout>

后端代码

public class MainActivity extends AppCompatActivity {
    private FrameLayout fl;      //需要用来设置点击事件
    private ImageView iv1;
    private ImageView iv2;

       @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        fl = findViewById(R.id.fl);
        iv1 = findViewById(R.id.iv1);
        iv2 = findViewById(R.id.iv2);
        show1();
        fl.setOnClickListener(new View.OnClickListener() {  //设置点击事件判定显示的图片
            @Override
            public void onClick(View v) {
                if(iv1.getVisibility()==View.VISIBLE){
                    show2();
                }else{
                    show1();
                }
            }
        });
    }
    public void show1(){             //设置图一可见,图二不可见,与shou2()相反
           iv1.setVisibility(View.VISIBLE);
           iv2.setVisibility(View.INVISIBLE);


    }
    public void show2(){
        iv2.setVisibility(View.VISIBLE);
        iv1.setVisibility(View.INVISIBLE);


    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中,可以使用PrintManager类来实现打印图片的功能。下面是一个简单的示例代码: 1. 首先,将需要打印的图片转换成Bitmap对象。可以使用BitmapFactory类的decodeResource方法或者decodeStream方法来加载图片资源。 2. 创建一个PrintAttributes对象来设置打印属性,例如纸张大小、页面方向等。可以使用PrintAttributes.Builder类来构建PrintAttributes对象。 3. 创建一个PrintDocumentAdapter对象,用于将打印内容提供给打印系统。可以继承PrintDocumentAdapter类,并重写其onWrite方法来实现自定义的打印内容。 4. 在onWrite方法中,可以使用Canvas对象来绘制图片。可以使用printAttributes属性来获取页面的宽度和高度,然后使用Canvas的drawBitmap方法将图片绘制到画布上。 5. 在Activity或Fragment中,通过PrintManager的print方法来触发打印操作。在print方法中,需要传入一个打印作业名称和PrintDocumentAdapter对象。 以下是示例代码: ```java // 将图片资源转换成Bitmap对象 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.my_image); // 创建打印属性 PrintAttributes attributes = new PrintAttributes.Builder() .setMediaSize(PrintAttributes.MediaSize.ISO_A4) .setOrientation(PrintAttributes.ORIENTATION_PORTRAIT) .build(); // 创建打印文档适配器 PrintDocumentAdapter adapter = new PrintDocumentAdapter() { @Override public void onWrite(PageRange[] pages, ParcelFileDescriptor destination, CancellationSignal cancellationSignal, WriteResultCallback callback) { try { // 创建页面 PrintedPdfDocument pdfDocument = new PrintedPdfDocument(context, attributes); // 开始绘制页面 PdfDocument.Page page = pdfDocument.startPage(0); Canvas canvas = page.getCanvas(); RectF contentRect = new RectF(canvas.getClipBounds()); // 将图片绘制到页面上 canvas.drawBitmap(bitmap, null, contentRect, null); // 结束绘制页面 pdfDocument.finishPage(page); // 将绘制好的PDF保存到文件中 pdfDocument.writeTo(new FileOutputStream(destination.getFileDescriptor())); // 关闭打印文档 pdfDocument.close(); // 打印完成回调 callback.onWriteFinished(new PageRange[]{PageRange.ALL_PAGES}); } catch (IOException e) { // 打印出错回调 callback.onWriteFailed(e.getMessage()); } } // 其他方法省略... }; // 调用PrintManager的print方法触发打印操作 PrintManager printManager = (PrintManager) getSystemService(Context.PRINT_SERVICE); String jobName = getString(R.string.print_job_name); printManager.print(jobName, adapter, null); ``` 通过上述代码,可以实现Android应用中打印图片的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值