目的
1.了解AndroidStudio任务栏目录作用
2.学习系统自带的控件
3.学习两种界面布局:
- 1.xml配置
- 2.使用java代码创建
具体实施
先将需要的资源翻入drawable包内
xml配置部分:
- 控件的尺寸
- 父视图:
- 子视图:
- 将一个控件添加到一个容器中,控件就是这个容器的子视图
- 容器就是这个控件的父视图
- 1.match_parent 和父视图一样大
- 2.wrap_content 包裹内容 和控件的内容一样大
- 3.20dp 具体尺寸
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:id="@+id/fl_main"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/bg"/>
<ImageView
android:id="@+id/iv_forground"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</FrameLayout>
Java配置部分:
- 使用java代码来布局界面
- 通过添加id号可以唯一标识某一控件 组件或容器
- android:id="@+id/fl_main"
public class MainActivity extends AppCompatActivity {
ImageView forground;
Bitmap orgBitmap;
Bitmap copyBitmap;
Canvas canvas;
Paint paint;
Matrix matrix;
@Override //创建一个界面 界面如何布局
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到容器里面的图片视图控件、
//findViewById
forground = findViewById(R.id.iv_forground);
//将需要操作的图片读取出来 Bitmap
orgBitmap = BitmapFactory.decodeResource(getResources(),R.drawable.fr);
//操作这张图片 用透明色去替换某个位置的颜色
//不能操作原图 只能copy一份
//创建一个和原始图片相同环境的空位图
copyBitmap = Bitmap.createBitmap(orgBitmap.getWidth(),orgBitmap.getHeight(),orgBitmap.getConfig());
//创建一个Canvas 画布-现实中的画板
canvas = new Canvas(copyBitmap);
//创建一个画笔
paint =new Paint();
//创建一个矩阵
Matrix matrix = new Matrix();
//画一幅图
canvas.drawBitmap(orgBitmap,matrix,paint);
//显示图片
forground.setImageBitmap(copyBitmap);
//给前景图片添加touch事件
//当有触摸事件发生 系统就会将这个事件接收并回调这个事件
forground.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//获取当前事件
int action = event.getAction();
//判断状态
if(action == MotionEvent.ACTION_MOVE){
//获取触摸点的坐标
int x =(int) event.getX();
int y = (int)event.getY();
//替换x,y对应的像素
for(int i=-8;i<8;i++){
for (int j = -8; j < 8; j++) {
copyBitmap.setPixel(x+i,y+j,Color.TRANSPARENT);
}
}
// canvas.drawBitmap(orgBitmap,new Matrix(),paint);
forground.setImageBitmap(copyBitmap);
}
return true;
}
});
小结:
今天听了学长分享的经验感觉受益匪浅,对不远的未来多了一份信心。感觉来学习是个正确的选择。今天的内容虽然多也都是新内容,但是感觉很有趣。