<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <LinearLayout
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_marginTop="10dp"
android:orientation="horizontal"> <TextView
android:id="@+id/tv_capture"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#ffffff"
android:textColor="#000000"
android:scrollbars="vertical"
android:textSize="17sp" /> <ImageView
android:id="@+id/iv_capture"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" /> </LinearLayout> <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="horizontal"> <Button
android:id="@+id/btn_chat"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="聊天"
android:textColor="#000000"
android:textSize="17sp" /> <Button
android:id="@+id/btn_capture"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="截图"
android:textColor="#000000"
android:textSize="17sp" /> </LinearLayout> </LinearLayout>

java

 package com.example.alimjan.hello_world;

 /**
* Created by alimjan on 7/1/2017.
*/ import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.text.method.ScrollingMovementMethod;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView; public class class__2_3_3_2 extends AppCompatActivity implements View.OnClickListener, View.OnLongClickListener {
private TextView tv_capture;
private ImageView iv_capture; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.code_2_3_3_2);
tv_capture = (TextView) findViewById(R.id.tv_capture);
iv_capture = (ImageView) findViewById(R.id.iv_capture);
tv_capture.setDrawingCacheEnabled(true);
tv_capture.setGravity(Gravity.LEFT|Gravity.BOTTOM);
tv_capture.setLines(17);
tv_capture.setMaxLines(17);
tv_capture.setMovementMethod(new ScrollingMovementMethod());
Button btn_chat = (Button) findViewById(R.id.btn_chat);
Button btn_capture = (Button) findViewById(R.id.btn_capture);
btn_chat.setOnClickListener(this);
btn_chat.setOnLongClickListener(this);
btn_capture.setOnClickListener(this);
} private String[] mChatStr = { "你吃饭了吗?", "今天天气真好呀。",
"我中奖啦!", "我们去看电影吧。", "晚上干什么好呢?" }; @Override
public boolean onLongClick(View v) {
if (v.getId() == R.id.btn_chat) {
tv_capture.setText("");
}
return true;
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.btn_chat) {
int random = (int)(Math.random()*10) % 5;
String newStr = String.format("%s\n%s %s",
tv_capture.getText().toString(), DateUtil.getCurDateStr(), mChatStr[random]);
tv_capture.setText(newStr);
} else if (v.getId() == R.id.btn_capture) {
Bitmap bitmap = tv_capture.getDrawingCache();
iv_capture.setImageBitmap(bitmap);
// 注意这里在截图完毕后不能马上关闭绘图缓存,因为画面渲染需要时间,
// 如果立即关闭缓存,渲染画面就会找不到位图对象,会报错
// “java.lang.IllegalArgumentException: Cannot draw recycled bitmaps”。
mHandler.postDelayed(mResetCache, 200);
}
} private Handler mHandler = new Handler();
private Runnable mResetCache = new Runnable() {
@Override
public void run() {
tv_capture.setDrawingCacheEnabled(false);
tv_capture.setDrawingCacheEnabled(true);
}
}; public static void startHome(Context mContext) {
Intent intent = new Intent(mContext, class__2_3_3_2.class);
mContext.startActivity(intent);
}
}

Android 开发笔记___图像视图__简单截屏的更多相关文章

  1. Android 开发笔记___图像视图

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  2. Android 开发笔记___滚动视图__scroll view

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...

  3. Android 开发笔记___存储方式__共享参数__sharedprefences

    Android 的数据存储方式有四种,这次是[共享参数__sharedprefences] 听起来挺别扭的,平时看到的app里面,当用户删除了一些软件以后下次安装,发现原来的设置还在,这种情况就是把一 ...

  4. Android 开发笔记___图像按钮__imageButton

    IMAGEBUTTON 其实派生自image view,而不是派生自button.,image view拥有的属性和方法,image button 统统拥有,只是imagebutton有个默认的按钮外 ...

  5. Android 开发笔记___初级控件之实战__计算器

    功能简单,实现并不难,对于初学者可以总和了解初级控件的基本使用. 用到的知识点如下: 线性布局 LinearLayout:整体界面是从上往下的,因此需要垂直方向的linearlayout:下面每行四个 ...

  6. Android学习笔记-ImageView(图像视图)

    本节引言: 本节介绍的UI基础控件是:ImageView(图像视图),见名知意,就是用来显示图像的一个View或者说控件! 官方API:ImageView;本节讲解的内容如下: ImageView的s ...

  7. Android 开发笔记___基本适配器的使用__BaseAdapter

    之前用到过ArryAdapter适用于纯文本的列表数据,SimpleAdapter适用于带图标的列表数据,但在实际应用中常常有更复杂的列表,比如同一项中存在多个控件,这时候用前面的两个会比较复杂,而且 ...

  8. Android 开发笔记___时间选择器---timePicker

    像datepicker一样,也有timepicker. 同样有timepickerdialog 所用到的方法还是一样,监听时间选择器的变化. package com.example.alimjan.h ...

  9. Android 开发笔记___实战项目:购物车

    购物车的应用很广泛,电商app基本上都有它的身影.由于它用到了多种存储方式,通过项目对数据的存储有更高层次的了解. 1.设计思路 首先看看购物车的外观.第一次进入时里面是空的,去购物页面加入购物车以后 ...

随机推荐

  1. [Node.js] 2、利用node-git-server快速搭建git服务器

    本文用到了node-git-server 1.检测本地git版本 该包的使用需要机器上本来就安装git,且git的版本大于等于2.7: ╭─root@lt /home/workspace ╰─# gi ...

  2. java集合系列——java集合概述(一)

    在JDK中集合是很重要的,学习java那么一定要好好的去了解一下集合的源码以及一些集合实现的思想! 一:集合的UML类图(网上下载的图片) Java集合工具包位置是java.util.* 二:集合工具 ...

  3. P3377

    题目描述 如题,一开始有N个小根堆,每个堆包含且仅包含一个数.接下来需要支持两种操作: 操作1: 1 x y 将第x个数和第y个数所在的小根堆合并(若第x或第y个数已经被删除或第x和第y个数在用一个堆 ...

  4. 扩展javascript扩展(类,对象,原型)

     扩展javascript扩展(类,对象,原型)

  5. hiveQL去重

    去重: 以id进行分组,然后取出每组的第一个 ; 以id进行分组,按照create_time降序排序后,然后取出每组的第一个 ; 将去重后的数据重新存储 ; 去重之后与其他表join算匹配数 sele ...

  6. JavaWeb之response响应中文乱码问题

    response向页面响应中文乱码问题  字节流 * 有可能乱码,与中文转换成字节数组.浏览器打开的默认字符编码有关 * 解决方式:将中文转成字节数组的时候和浏览器默认打开的时候采用的字符集一致 re ...

  7. 【框架学习与探究之消息队列--EasyNetQ(2)】

    声明 本文欢迎转载,系博主原创,本文原始链接地址:http://www.cnblogs.com/DjlNet/p/7654902.html 前言 此文章,是承接上篇:[框架学习与探究之消息队列--Ea ...

  8. python随机生成中文字符

    第一种方法:Unicode码 在unicode码中,汉字的范围是(0x4E00, 9FBF) import random def Unicode(): val = random.randint(0x4 ...

  9. WPF popup置顶

    在程序写一个popup发现他会在置顶,在网上找了两大神代码http://www.cnblogs.com/Leaco/p/3164394.html http://blog.csdn.net/baijin ...

  10. Hadoop(十一)Hadoop IO之序列化与比较功能实现详解

    前言 上一篇给大家介绍了Hadoop是怎么样保证数据的完整性的,并且使用Java程序来验证了会产生.crc的校验文件.这一篇给大家分享的是Hadoop的序列化! 一.序列化和反序列化概述 1.1.序列 ...