效果图:
1、activity_main.xml
2、MainActivity.java
package com.example.android_activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;//实现View.OnClickListener类//通过实现OnClickListener类可以在一个activity中对所有的按钮进行控制public class MainActivity extends Activity implements View.OnClickListener{ //获取按钮 private Button btn1,btn2,btn3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取按钮id btn1=(Button)findViewById(R.id.btn1); btn2=(Button)findViewById(R.id.btn2); btn3=(Button)findViewById(R.id.btn3); //给每个按钮设置单击事件监听器 btn1.setOnClickListener(this); btn2.setOnClickListener(this); btn3.setOnClickListener(this); } //在OnClickListener抽象类中有onClick()抽象方法,重写抽象类的onClick()方法,需要传入一个参数 @Override public void onClick(View view) { Intent intent=null; switch (view.getId()){ case R.id.btn1: intent=new Intent(this,StringActivity.class); break; case R.id.btn2: break; case R.id.btn3: intent=new Intent(this,BitMapActivity.class); break; } if(intent!=null) startActivity(intent); }}
3、activity_string.xml
4、StringActivity.java
package com.example.android_activity;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Toast;import java.util.Arrays;public class StringActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_string); } //当点击了btn1后页面跳转到这里,当用户点击此页面中的test_1按钮时,做下面的事情 //在Java代码中读取资源文件 public void test_1(View view){ String message=getString(R.string.app_success_message); //弹出“操作成功” Toast.makeText(this,message,Toast.LENGTH_LONG).show(); } //在java中读取字符串数组 public void test_2(View view){ //读取到res/values目录下的string.xml文件中对应的内容 String[] citys=getResources().getStringArray(R.array.citys); //将内容弹出 Toast.makeText(this, Arrays.toString(citys),Toast.LENGTH_LONG).show(); } //读取带有占位符的字符串 public void test_3(View view){ String message=getString(R.string.app_sayhello_message); message=String.format(message,"Lucy","字符串资源管理"); Toast.makeText(this, message,Toast.LENGTH_LONG).show(); }}
5、activity_bit_amp.xml
6、BitMapActivity.java
package com.example.android_activity;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.widget.ImageView;import android.widget.Toast;public class BitMapActivity extends Activity { //获取图片 private ImageView image_1,image_2,image_3,image_4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_bit_map); //获取图片id image_1=(ImageView)findViewById(R.id.image_1); image_2=(ImageView)findViewById(R.id.image_2); image_3=(ImageView)findViewById(R.id.image_3); image_4=(ImageView)findViewById(R.id.image_4); //为ImageView绑定图像 image_1.setImageDrawable(getResources().getDrawable(R.drawable.b5)); image_2.setImageResource(R.drawable.b7); //将一个资源文件转换为一个Bitmap位图对象 Bitmap bitmap= BitmapFactory.decodeResource(getResources(),R.drawable.b7); //输出图像大小 Toast.makeText(this,"大小:"+bitmap.getByteCount(),Toast.LENGTH_LONG).show(); image_3.setImageBitmap(bitmap); //压缩图像 Bitmap newImage=decodeBitMap(R.drawable.b7); image_3.setImageBitmap(newImage); Toast.makeText(this,"大小:"+newImage.getByteCount(),Toast.LENGTH_LONG).show(); } private Bitmap decodeBitMap(int resId){ //构建位图工厂选项对象 BitmapFactory.Options options=new BitmapFactory.Options(); options.inJustDecodeBounds=true;//当前只加载图像框架 //构建位图框架 Bitmap bf=BitmapFactory.decodeResource(getResources(),resId,options); int w = options.outWidth; int h = options.outHeight; // 想要缩放的目标尺寸 float hh = 240f;// 设置高度为240f时,可以明显看到图片缩小了 float ww = 120f;// 设置宽度为120f,可以明显看到图片缩小了 // 缩放比。由于是固定比例缩放,只用高或者宽其中一个数据进行计算即可 int be = 1;//be=1表示不缩放 if (w > h && w > ww) { //如果宽度大的话根据宽度固定大小缩放 be = (int) (options.outWidth / ww); } else if (w < h && h > hh) { //如果高度高的话根据宽度固定大小缩放 be = (int) (options.outHeight / hh); } if (be <= 0) be = 1; options.inSampleSize = be;//设置缩放比例 options.inJustDecodeBounds=false;//不再只加载图像框架 //重新加载图像 bf=BitmapFactory.decodeResource(getResources(),resId,options); return bf; }}
7、图像资源
8、字符串资源
strings.xml
安卓资源管理 资源管理主窗体 字符串资源管理 尺寸资源管理 图像资源管理 颜色资源管理 样式资源管理 XML资源管理 获取字符串信息1 获取字符串信息2 获取字符串信息3 - 北京
- 上海
- 广州
- 珠海
mystring.xml
操作成功 操作失败 %1$s,您好,欢迎您进入%2$s