效果图:
1、activity_main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textSize="@dimen/activity_tile" android:text="@string/main_title" /> <Button android:id="@+id/btn1" android:textSize="@dimen/activity_btn_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/main_btn_one" /> <Button android:id="@+id/btn2" android:textSize="@dimen/activity_btn_text" android:text="@string/main_btn_two" android:layout_width="@dimen/btn_width" android:layout_height="@dimen/btn_height" /> <Button android:id="@+id/btn3" android:textSize="@dimen/activity_btn_text" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/main_btn_three" /> </LinearLayout>
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
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_string" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/string_btn_1" android:onClick="test_1" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/string_btn_2" android:onClick="test_2" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/string_btn_3" android:onClick="test_3" /> </LinearLayout>
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
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/activity_bit_map" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ImageView android:layout_width="80dp" android:layout_height="120dp" android:src="@drawable/b5" /> <ImageView android:id="@+id/image_1" android:layout_width="80dp" android:layout_height="120dp" /> <ImageView android:id="@+id/image_2" android:layout_width="80dp" android:layout_height="120dp" /> <ImageView android:id="@+id/image_3" android:layout_width="80dp" android:layout_height="120dp" /> <ImageView android:id="@+id/image_4" android:layout_width="80dp" android:layout_height="120dp" /> </LinearLayout>
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
<resources> <string name="app_name">安卓资源管理</string> <!--自定义APP中字符串--> <string name="main_title">资源管理主窗体</string> <string name="main_btn_one">字符串资源管理</string> <string name="main_btn_two">尺寸资源管理</string> <string name="main_btn_three">图像资源管理</string> <string name="main_btn_four">颜色资源管理</string> <string name="main_btn_five">样式资源管理</string> <string name="main_btn_six">XML资源管理</string> <!--StringActivity_String--> <string name="string_btn_1">获取字符串信息1</string> <string name="string_btn_2">获取字符串信息2</string> <string name="string_btn_3">获取字符串信息3</string> <string-array name="citys"> <item>北京</item> <item>上海</item> <item>广州</item> <item>珠海</item> </string-array> </resources>
mystring.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_success_message">操作成功</string> <string name="app_error_message">操作失败</string> <string name="app_sayhello_message">%1$s,您好,欢迎您进入%2$s</string> </resources>