如何进行对图片的切割
来源:互联网 发布:捷世高 软件 编辑:程序博客网 时间:2024/05/01 11:39
一:要达到的效果
二:布局使用了GridLayout(五列三行)
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.kirito.puzzlegame.MainActivity"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <HorizontalScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <GridLayout android:id="@+id/gl" android:columnCount="3" android:rowCount="5" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </HorizontalScrollView> </ScrollView></RelativeLayout>
三:以二维数组来表示图片切割的各个部分,使用createBitmap方法切割图片,使用gridlayout的addview方法把图片块添加进去
package com.example.kirito.puzzlegame;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.drawable.BitmapDrawable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.animation.Animation;import android.view.animation.RotateAnimation;import android.view.animation.TranslateAnimation;import android.widget.GridLayout;import android.widget.ImageView;import android.widget.Toast;public class MainActivity extends AppCompatActivity { private ImageView ivs[][] = new ImageView[5][3]; private GridLayout gl; private ImageView null_iv; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); gl = (GridLayout) findViewById(R.id.gl); //从drawable下获取图片资源并将其转为bitmap Bitmap bm = ((BitmapDrawable)getResources().getDrawable(R.drawable.a)).getBitmap(); int bm_height = bm.getHeight() / 5; int bm_width = bm.getWidth() / 3; for (int i = 0; i < ivs.length; i++) { for (int j = 0; j < ivs[0].length; j++) { ivs[i][j] = new ImageView(this); //通过bitmap的createBitmap方法来切割图片,把完整图片分割成五行三列 /** * createBitmap方法解析 * Bitmap.createBitmap(source, 60, 0, 480, 260); // 320 - 60 = 260 Basically, you are drawing from x = 60, y = 0 to x = 480 + 60, y = 260 on a Bitmap */ //完整分割图片 Bitmap bp = Bitmap.createBitmap(bm,j * bm_width,i * bm_height,bm_width,bm_height); ivs[i][j].setImageBitmap(bp); //这种均等切割为正方形的方式,最终只会显示原图的一部分,即把原图左上角部分的正方形切割下来,其他的就舍弃了 /*Bitmap bp = Bitmap.createBitmap(bm,j * bm_height,i * bm_height,bm_height,bm_height); ivs[i][j].setImageBitmap(bp);*/ ivs[i][j].setPadding(2,2,2,2); } } for (int i = 0; i < ivs.length; i++) { for (int j = 0; j < ivs[0].length; j++) { //通过给gridview添加切割好的小图片 gl.addView(ivs[i][j]); } } } }
0 0
- 如何进行对图片的切割
- java 对图片进行切割,灰度化,切割操作
- 用MATLAB对图片进行切割及复原
- OpenCV实现对图片的切割
- matlab 将图片进行切割
- 如何对包含图片的长文进行分页处理
- 嵌入式 SDL进行图片的切割与移动
- 使用Android Studio的9patch来进行切割图片
- 图片的切割-UIImageView
- 如何对图片进行SEO优化
- 如何对网站图片进行优化
- 如何对图片进行SEO优化?只需三步
- 如何对图片进行SEO优化?只需三步
- matlab中如何添加图片,如何对图片进行读取
- 利用RandomAccessFile对文件进行切割存储
- java实现上传图片进行切割
- java的图片的切割
- Flex中如何利用Matrix类的rotate函数对图片进行旋转操作的例子
- 一题多解(六)—— 一个数二进制形式 1 的个数
- jsp页面的第一行报错
- OSError: libcudart.so.7.5: cannot open shared object file: No such file or directory
- Java 集合深入理解(5):AbstractCollection
- windows redis 服务命令
- 如何进行对图片的切割
- Retrofit
- 仿微信朋友圈效果
- Android 四种方案解决ScrollView嵌套ListView问题
- Oracle/DB2 null key index
- poj 1573 Robot Motion (模拟题)
- 数据结构实验之栈三:后缀式求值(java实现)
- 怎样建立良好的师生关系
- Simple usage of ant build file build.xml