Android 如何在ImageButton上动态设置图像?
我想在我的应用程序中的按钮上设置一个图像,动态地从SD卡上的文件中设置。我尝试过这个代码,但它不起作用。我尝试将图像转换为位图对象,并将该对象设置为ImageButton,但它没有显示任何内容。我如何解决这个问题 我的代码:Android 如何在ImageButton上动态设置图像?,android,android-bitmap,android-imagebutton,Android,Android Bitmap,Android Imagebutton,我想在我的应用程序中的按钮上设置一个图像,动态地从SD卡上的文件中设置。我尝试过这个代码,但它不起作用。我尝试将图像转换为位图对象,并将该对象设置为ImageButton,但它没有显示任何内容。我如何解决这个问题 我的代码: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activi
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File imageFile = new File("/sdcard0/DCIM/camera/jbn.jpg");
Bitmap bmp = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
ImageButton button1 = (ImageButton)findViewById(R.id.imgBtn);
button1.setImageBitmap(bmp);
}
XML
<ImageButton
android:layout_width="200dip"
android:layout_height="200dip"
android:id="@+id/imgBtn"
/>
尝试获取图像文件的绝对路径:
File imageFile = new File("/sdcard0/DCIM/camera/jibin.jpg");
Bitmap bmp = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
尝试获取图像文件的绝对路径:
File imageFile = new File("/sdcard0/DCIM/camera/jibin.jpg");
Bitmap bmp = BitmapFactory.decodeFile(imageFile.getAbsolutePath());
你可以试试这样的东西-
String path = Environment.getExternalStorageDirectory()
+ "/Images/test.jpg";
File imgFile = new File(path);
if (imgFile.exists()) {
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile
.getAbsolutePath());
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(myBitmap);
}
你可以试试这样的东西-
String path = Environment.getExternalStorageDirectory()
+ "/Images/test.jpg";
File imgFile = new File(path);
if (imgFile.exists()) {
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile
.getAbsolutePath());
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.setImageBitmap(myBitmap);
}
如果要从任何URL动态设置图像,请按以下方式设置图像。您还可以设置位图的宽度和高度
private class LoadImage extends AsyncTask<Bundle, String, Bitmap> {
Bitmap bitmap;
@Override
protected Bitmap doInBackground(Bundle... args) {
extras=args[0];
try {
InputStream in = new java.net.URL("Enter your URL").openStream();
bitmap = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
protected void onPostExecute(Bitmap image) {
imageButton.setImageBitmap(image);
}
}
私有类LoadImage扩展了异步任务{
位图;
@凌驾
受保护位图doInBackground(捆绑…args){
extras=args[0];
试一试{
InputStream in=new java.net.URL(“输入您的URL”).openStream();
位图=BitmapFactory.decodeStream(in);
}捕获(例外e){
e、 printStackTrace();
}
返回位图;
}
受保护的void onPostExecute(位图图像){
设置图像位图(图像);
}
}
如果您想从本地目录或资源文件夹中设置图像,则只需从文件夹中获取图像并在图像中设置,而无需将其转换为位图。
谢谢如果您想从任何URL动态设置图像,请以这种方式设置图像。您还可以设置位图的宽度和高度
private class LoadImage extends AsyncTask<Bundle, String, Bitmap> {
Bitmap bitmap;
@Override
protected Bitmap doInBackground(Bundle... args) {
extras=args[0];
try {
InputStream in = new java.net.URL("Enter your URL").openStream();
bitmap = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return bitmap;
}
protected void onPostExecute(Bitmap image) {
imageButton.setImageBitmap(image);
}
}
私有类LoadImage扩展了异步任务{
位图;
@凌驾
受保护位图doInBackground(捆绑…args){
extras=args[0];
试一试{
InputStream in=new java.net.URL(“输入您的URL”).openStream();
位图=BitmapFactory.decodeStream(in);
}捕获(例外e){
e、 printStackTrace();
}
返回位图;
}
受保护的void onPostExecute(位图图像){
设置图像位图(图像);
}
}
如果您想从本地目录或资源文件夹中设置图像,则只需从文件夹中获取图像并在图像中设置,而无需将其转换为位图。
谢谢试着做一些简单的事情,比如:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "jbn.jpg";
String pathName = baseDir + "/your/folder(s)/" +_ fileName; //maybe your folders are /DCIM/camera/
Bitmap bmp = BitmapFactory.decodeFile(pathName);
ImageButton button1 = (ImageButton)findViewById(R.id.imgBtn);
button1.setImageBitmap(bmp);
试着做一些简单的事情,例如:
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String fileName = "jbn.jpg";
String pathName = baseDir + "/your/folder(s)/" +_ fileName; //maybe your folders are /DCIM/camera/
Bitmap bmp = BitmapFactory.decodeFile(pathName);
ImageButton button1 = (ImageButton)findViewById(R.id.imgBtn);
button1.setImageBitmap(bmp);
看看这个库,它帮了我很多…你能发布你的布局文件吗?你的jpg有多大?您添加了从文件系统读取文件的权限吗?@user3431672:我添加了读取权限,请查看我的编辑查看此库它对我帮助很大…您可以发布布局文件吗?你的jpg有多大?您添加了从文件系统读取文件的权限吗?@user3431672:我添加了读取权限,请查看我的编辑查看此库它对我帮助很大…您可以发布布局文件吗?你的jpg有多大?您添加了从文件系统读取文件的权限吗?@user3431672:我添加了读取权限,请查看我的editIt works!!Thanx.如何在ImageButton上动态设置用户最近保存在我设备的camera文件夹(通过拍摄快照)中的图像??(如果我不知道文件名,如何将设备摄像头拍摄的最后一张图像设置为“我的图像”按钮)您可以使用以下算法:1.从摄像头文件夹获取所有文件;2.获取文件的创建日期如下:和3.获取最新文件作为资源谢谢,我已经尝试了前两个步骤,现在我在我的相机目录中找到了上次修改文件的日期。如何获取最新文件作为资源??你能帮我吗?请查看我的编辑。请稍候,我将给你写一个简单的例子,这就是我所说的:我认为你应该遍历目录中的所有文件,看看哪个是最新的文件,因为它不确定这些文件是否按字母顺序排列。另外,我刚刚看到我在第13行中犯了一个错误->它是
file.lastModified()
with()它可以工作!!Thanx.如何在ImageButton上动态设置用户最近保存在我设备的camera文件夹(通过拍摄快照)中的图像??(如果我不知道文件名,如何将设备摄像头拍摄的最后一张图像设置为“我的图像”按钮)您可以使用以下算法:1.从摄像头文件夹获取所有文件;2.获取文件的创建日期如下:和3.获取最新文件作为资源谢谢,我已经尝试了前两个步骤,现在我在我的相机目录中找到了上次修改文件的日期。如何获取最新文件作为资源??你能帮我吗?请查看我的编辑。请稍候,我将给你写一个简单的例子,这就是我所说的:我认为你应该遍历目录中的所有文件,看看哪个是最新的文件,因为它不确定这些文件是否按字母顺序排列。另外,我刚刚看到我在第13行中犯了一个错误->它是file.lastModified()
with()它可以工作!!Thanx.如何在ImageButton上动态设置用户最近保存在我设备的camera文件夹(通过拍摄快照)中的图像??(如果我不知道文件名,如何将设备摄像头拍摄的最后一张图像设置为“我的图像”按钮)您可以使用以下算法:1.从摄像头文件夹获取所有文件;2.获取文件的创建日期如下:和3.获取最新文件作为资源谢谢,我已经尝试了前两个步骤,现在我在我的相机目录中找到了上次修改文件的日期。如何获取最新文件作为资源??你能帮我吗?请查看我的编辑。请稍候,我将给你写一个简单的例子,这就是我所说的:我认为你应该遍历目录中的所有文件,看看哪个是最新的文件,因为它不确定这些文件是否按字母顺序排列。另外,我刚刚看到我在第13行中犯了一个错误->它是file.lastModified()