Android开发---如何操作资源目录中的资源文件
效果图:
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>
Android开发---如何操作资源目录中的资源文件的更多相关文章
- Android开发---如何操作资源目录中的资源文件4 ---访问xml的配置资源文件的内容
Android开发---如何操作资源目录中的资源文件4 XML,位于res/xml/,这些静态的XML文件用于保存程序的数据和结构. XmlPullParser可以用于解释xml文件 效果图: 描述: ...
- Android开发---如何操作资源目录中的资源文件3--圆角边框、背景颜色渐变效果、边框颜色
Android开发---如何操作资源目录中的资源文件3 效果图 1.圆角边框 2.背景颜色渐变效果 1.activity_main.xml 描述: 定义了一个shape资源管理按钮 <?xml ...
- Android开发 ---如何操作资源目录中的资源文件2
Android开发 ---如何操作资源目录中的资源文件2 一.颜色资源管理 效果图: 描述: 1.改变字体的背景颜色 2.改变字体颜色 3.改变按钮颜色 4.图像颜色切换 操作描述: 点击(1)中的颜 ...
- Android开发 ---如何操作资源目录中的资源文件5 ---Raw资源管理与国际化
效果图: 1.activity_main.xml 描述: 定义两个按钮,一个是Raw资源管理,一个是处理国际化语言,其中i18n表示简体中文 <?xml version="1.0&qu ...
- android开发之-查看、编辑手机sqlite数据库文件-实测
效果图: 1.开始——运行——输入cmd ,输入adb shell,错误:一是“adb不是内部命令或外部命令,也不是可运行的程序或批处理文件”,二是“error:device not found”. ...
- 在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world
一.题目 编写一个内核模块,在/proc文件系统中增加一个目录hello,并在这个目录中增加一个文件world,文件的内容为hello world.内核版本要求2.6.18 二.实验环境 物理主机:w ...
- 创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来
/*4.创建一个目录info,并在目录中创建一个文件test.txt,把该文件的信息读取出来,并显示出来*/ #import <Foundation/Foundation.h>#defin ...
- python实现在目录中查找指定文件的方法
python实现在目录中查找指定文件的方法 本文实例讲述了python实现在目录中查找指定文件的方法.分享给大家供大家参考.具体实现方法如下: 1. 模糊查找 代码如下: import os from ...
- 如何查找一个目录中所有c文件的总行数
如何查找一个目录中所有c文件的行数 面试题问到了一题,如何统计wc文件夹下所有文件的行数,包括了子目录. 最后在 https://blog.csdn.net/a_ran/article/details ...
随机推荐
- breakthroughs in statistics | 统计学历史
<breakthroughs in statistics>- 这本书理解透了,统计方面应该可以封神了. 亚马逊上有卖,貌似还有好几卷. Breakthroughs in Statistic ...
- CentOS6.8下实现配置配额
CentOS6.8下实现配置配额 Linux系统是支持多用户的,即允许多个用户同时使用linux系统,普通用户在/home/目录下均有自己的家目录,在默认状态下,各个用户可以在自己的家目录下任意创建文 ...
- Tree总结
树结构问题因为容易写出解法,因此经常出现在面试题中 1. 树的种类 1) Tree 2) Binary Trees 3) Binary Search Trees(BST) : used to sort ...
- C# 有哪些集合
队列[Queue] //队列:先进先出 /* *增加元素到队列结尾处 *移除队列开始处 */ Queue queue=new Queue(); queue.Enqueue(Object); queue ...
- 20165309 实验四 Android程序设计
2017-2018-2 20165309实验四<Java面向对象程序设计>实验报告 一.实验内容 1.Android Studio的安装测试 2.Activity测试 3.UI测试 4.布 ...
- 百度地图API 自定义坐标点及图片
var map = new BMap.Map("allmap");var point = new BMap.Point(105.955754,36.525109);map.cent ...
- MRBS开源会议室预订系统安装
MRBS系统官方网址 https://mrbs.sourceforge.io/ 最近在找一份开源的会议室预订系统,找了很多种,ASP,PHP的,测试发现MRBS无疑是最好的.开源社区对其介绍如下:M ...
- Guarding Bananas
Guarding Bananas Once there was a lazy monkey in a forest. But he loved banana too much. One day the ...
- mybatis与spring的整合(代码实现)
mybatis与spring的整合(代码实现) 需要jar包: mybatis核心包:依赖包:log4j包:spring croe;beans;tx;aop;aspects;context;expre ...
- Java序列化的作用和反序列化
1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来.虽然你可以用你自己的各种各样的方法来保存object states,但 ...