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 ...
随机推荐
- 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形网格动态加载
jQuery EasyUI 树形菜单 - 树形网格动态加载 动态加载树形网格有助于从服务器上加载部分的行数据,避免加载大型数据的长时间等待.本教程将向您展示如何创建带有动态加载特性的树形网格(Tree ...
- 2017-2018-2 20165327 实验四《Android程序设计》实验报告
2017-2018-2 20165327 实验四<Android程序设计>实验报告 任务一 Android Stuidio的安装测试: 任务要求 参考Android开发简易教程,安装 An ...
- Could not find method google() for arguments [] on repository container.
出这个问题主要是你Gradle版本太低的原因,一般要使用4.0+的版本 所以你需要更新你的Gradle版本至4.0+呦 tips:注意你的AndroidStudio版本应该是3.0以上,因为Gradl ...
- js传输图片路径
数据库中存储数据/commons/img/***.jpg格式的图片路径. "<a onclick=\"showImg(\'"+dataEle.imgPath.rep ...
- Fiddler抓包—搞定接口测试
·包的定义 在包交换网络里,单个消息被划分为多个数据块,这些数据块称为包,它包含发送者和接受者的地址信息.这些包然后沿着不同的路径在一个或多个网络中传输,并且在目的地重新组合. ·应用 简 ...
- CentOS7 下源代码安装mysql5.6
###### mysql ######### 引言:这里选用mysql5.6版本,5.7版本编译时间需要几个小时. 编译安装环境: yum -y install make gcc-c++ cmake ...
- centos7 mysql+MHA高可用安装
https://dzone.com/articles/consul-proxysql-and-mysql-ha?utm_medium=feed&utm_source=feedpress.me& ...
- cf-914D-线段树
http://codeforces.com/contest/914/problem/D 题目大意是给出一个数列,进行两种操作,一个是将位置i的数置为x,另一个操作是询问[l,r]内的数的gcd是不是x ...
- git相关知识(github,idea等的配置)
本地git提交文件到github上: 1.在github上创建项目 2.使用git clone https://github.com/xxxxxxx/xxxxx.git克隆到本地 3.编辑项目 4.g ...
- Hadoop---Exception in thread "main" java.lang.NullPointerException问题的解决
Exception in thread "main" java.lang.NullPointerException问题的解决 解决: 首先我们来分析下这个问题,我是使用debug ...