自定义View显示第一个文字和生成png到sd卡
来源:互联网 发布:服务器1433端口不通 编辑:程序博客网 时间:2024/06/08 12:34
第一次在csdn写博客,作为一个对自定义view学习的开始吧。功能是输入字符串显示第一个字符在view上和生成png到sd卡,很简单直接贴代码了:
package main.beini.com.wordstranpic.utils;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Rect;import android.graphics.drawable.Drawable;import android.util.AttributeSet;import android.widget.ImageView;/** * Created by beini on 2016/8/13 */public class WordsSowView extends ImageView { private String str = ""; public WordsSowView(Context context) { super(context); } public WordsSowView(Context context, AttributeSet attrs) { super(context, attrs); } public WordsSowView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public void setBackground(Drawable background) { super.setBackground(background); } public void setString(String str) { if (str == null || str.length() == 0) { return; } this.str = str.substring(0, 1); invalidate(); } Paint p; @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); p = new Paint(); p.setColor(Color.WHITE); p.setTextSize(175f); Rect rect = new Rect(); p.getTextBounds(str, 0, str.length(), rect); int w = rect.width(); int h = rect.height(); canvas.drawText(str, this.getWidth() / 2 - w / 2, this.getHeight() / 2 + h / 2, p); }}
package main.beini.com.wordstranpic;import android.graphics.Bitmap;import android.graphics.Color;import android.os.Bundle;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import main.beini.com.wordstranpic.utils.WordsSowView;public class ShowWordsActivity extends AppCompatActivity { private WordsSowView wordsSowView; EditText edt_input; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show_words); initView(); } private void initView() { edt_input = (EditText) findViewById(R.id.edt_input); wordsSowView = (WordsSowView) findViewById(R.id.my_view); } public void showText(View view) { if (TextUtils.isEmpty(edt_input.getText())) { return; } wordsSowView.setString(edt_input.getText().toString()); wordsSowView.setBackgroundColor(Color.BLUE); } public void savePic(View view) { new Thread(new Runnable() { @Override public void run() { // 获取bitmap转换为png wordsSowView.buildDrawingCache(); Bitmap bitmap = wordsSowView.getDrawingCache(); long current = System.currentTimeMillis(); String path = Environment.getExternalStorageDirectory() + "/" + current + ".png"; FileOutputStream os = null; try { os = new FileOutputStream(new File(path)); bitmap.compress(Bitmap.CompressFormat.PNG, 100, os); os.flush(); os.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }).start(); }}
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="main.beini.com.wordstranpic.ShowWordsActivity"> <EditText android:id="@+id/edt_input" android:layout_width="match_parent" android:layout_height="wrap_content"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="15dp" android:onClick="showText" android:text="显示第一个字"/> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="savePic" android:text="生成图片保存在内存卡"/> <main.beini.com.wordstranpic.utils.WordsSowView android:id="@+id/my_view" android:layout_width="100dp" android:layout_height="100dp" android:layout_gravity="center_horizontal" android:layout_marginTop="35dp" android:background="@color/colorAccent"/></LinearLayout>
1 0
- 自定义View显示第一个文字和生成png到sd卡
- 自定义控件2.第一个自定义view
- 自定义View绘制文字居中显示
- 第一个自定义view,折线图
- 自定义圆环百分占比view (label文字支持自动换行 和设置显示行数)
- Android 保存View到本地SD卡
- View 截取保存图片到sd卡
- 将文字生成png图片
- WINCE 获取第一个SD卡
- 自定义View同时显示3个Fragment
- 【Android自定义View 一】第一个自定义的控件
- 自定义联系人头像显示第一个字符
- 利用GridView显示SD卡的图片和两段文字
- Android自定义可以在文字上方显示备注的View
- Android 自定义View SeekBar 带浮动文字显示
- 一个用粒子动画显示文字的 Android 自定义 View
- Android自定义View单TextView显示多种文字样式
- 自定义View绘制文字
- Android中的Menu(菜单)的三种类型菜单的学习
- tjut 2876
- C++标准模板库函数sort
- 纯代码实现dialog
- HDU/ HDOJ 1203 I NEED A OFFER!(DP,0/1 背包)
- 自定义View显示第一个文字和生成png到sd卡
- Java 运算符
- 入门经典训练指南第三章例题1.UVa 11995 I Can Guess the Data Structure!
- 启动WebLogic服务时,出现“此时不应有xxxjdk”
- BZOJ1572 [Usaco2009 Open]工作安排Job
- hdu5748 Bellovin(LIS lower_bound的使用)
- ubuntu16.04安装Ulipad
- 安装redhat时中文显示乱码(小方框)及中文输入法安装解决方法
- Docker+Selenium Grid构建分布式Web测试环境