我正在尝试从我的设备SD卡中加载一个png图像作为drawable.我使用以下函数,但它不起作用:
public Drawable getDrawable()
{
return new BitmapDrawable(imagePath);
}
Run Code Online (Sandbox Code Playgroud)
图像路径为:mnt/sdcard/MyFolder/image.png
当我尝试调用该方法时应用程序崩溃,我应该如何加载位于我的SD卡中的png图像并将其转换为Drawable对象?
我正在尝试将facebook集成到我的应用中.当我按下登录按钮并填写电子邮件和密码时,我在应用程序中收到错误消息:"
应用程序错误配置Facebook登录..
"然后我必须按"好"按钮然后关闭.
我已经填写了我的Facebook应用程序中的字段,这是一张图片: 
另外,在logcat中我按下"登录"按钮(我创建的按钮,弹出facebook登录).我看到以下错误:
无法找到com.facebook.katana.AttributionIdProvider的提供商信息
为什么Facebook登录不起作用?
编辑:按下Okay按钮后,logcat不会抛出任何错误.
我想用SQLCipher创建一个新的加密数据库,由于以下链接,我并没有真正找不到如何设置密钥:http://sqlcipher.net/sqlcipher-api/#key
正如文档所解释的那样,我必须使用PRAGMA设置密钥,但是从哪里开始执行该命令?
我知道可以在运行时使用 C#CSharpCodeProvider和 CodeDom编译 C# 代码。
是否也可以编译Java?如果不是,有没有其他选择?
我希望我的应用程序能够编译 C# 和 Java 代码。
我正在尝试获取thumnail 路径,而不是位图对象.
当我查询这些时,由于某种原因,某些缩略图路径为空.(我的设备中有1028个缩略图,光标长度确实是1028,但仍然返回空值)我知道有1028个缩略图,因为我查了一下.这是我的代码:
String[] projection = {MediaStore.Images.Thumbnails._ID};
// Create the cursor pointing to the SDCard
cursor = this.getContentResolver().query( MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,
projection, // Which columns to return
null, // Return all rows
null,
MediaStore.Images.Thumbnails.IMAGE_ID);
// Get the column index of the Thumbnails Image ID
Log.d(Global.TAG, "BEFORE");
columnIndex = cursor.getColumnIndex(MediaStore.Images.Thumbnails._ID);
Log.d(Global.TAG, "AFTER1");
for(int i =0;i<cursor.getCount();i++){
cursor.moveToPosition(i);
Log.d("MyTag","BBABA" + i +" : " + getThumbnailPathForLocalFile(cursor.getLong(columnIndex)));
}
cursor.close();
Run Code Online (Sandbox Code Playgroud)
我的getThumbnailPathForLocalFile:
String getThumbnailPathForLocalFile(long fileId)
{
// Log.d(Global., msg)
Cursor thumbCursor = null;
try
{
thumbCursor = …Run Code Online (Sandbox Code Playgroud) 所以这是我的布局结构:
- RelativeLayout (full screen)
- FrameLayout (full screen)
- Button (in the middle of the screen)
- RecyclerView (align parent bottom but with very big padding top to
capture the scrolling also in the top of the screen, so it's basically acting like a full screen `RecyclerView`)
Run Code Online (Sandbox Code Playgroud)
所以是的,这些观点相互重叠.
由于RecyclerView它是最顶层的视图,它捕获屏幕上的所有触摸事件,并吞下它们,防止任何触摸"通过它"到它下面的底层视图.(注意:根据基本观点,我不是指RecyclerView孩子而是其他rootview's孩子)
我已经阅读了大量关于传播触摸事件和防止吞咽触摸事件等的stackoverflow帖子,即使看起来非常简单的任务,我也无法实现以下效果:
我想要我RecyclerView捕捉触摸事件,所以它会滚动或其他任何东西.但是我想要rootView认为RecyclerView没有捕获事件,并继续传递给其他孩子(rootview的孩子).
这是我试图做的事情:
1.重写dispatchTouchEvent的RecyclerView做它的逻辑并返回false作为它没有调度其触摸事件,因此rootview将继续迭代通过其子视图触摸.
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
super.dispatchTouchEvent(ev); …Run Code Online (Sandbox Code Playgroud) java android android-custom-view android-layout android-view
我的目标是数据绑定与我的枚举相同的字符串.
public enum Language
{
Unknown=0,CSharp=1,VB=2,VisualCpp=3,FSharp=4
}
public enum ProjectType
{
Unknown=0,ConsoleApplication=1,ClassLibrary=2
}
Run Code Online (Sandbox Code Playgroud)
这是我的模型:
class PLanguage
{
public Language EnumLanguage { get; set; }
public string ImagePath { get; set; }
public List<ProjectType> EnumTypes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
MyViewModel:
class PLanguageViewModel : ViewModelBase
{
public PLanguage PLanguage { get; set; }
private ObservableCollection<string> _typeCollection;
public PLanguageViewModel(PLanguage pLanguage)
{
PLanguage = pLanguage;
}
public ObservableCollection<string> TypeCollection
{
get{} //CAST PLanguage.EnumTypes FROM ENUM TO STRING
}
public string ImagePath
{
get …Run Code Online (Sandbox Code Playgroud) 我一直在尝试设置位图很长时间以使其适合ImageView边界.
它只是无法正常工作scaleType: fitXY.我的位图图像大小低于ImageView's(保存在100X100像素),我希望我的位图图像适合并伸展到ImageView.
这是一些代码:
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/imageView"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:src="@drawable/locked_image"
android:scaleType="fitXY"
/>
Run Code Online (Sandbox Code Playgroud)
这是设置的代码ImageView(我scaleType在不同的地方设置测试):
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ImageView imageView;
if (convertView == null) {
imageView = (ImageView) getLayoutInflater().inflate(R.layout.item_grid_image, parent, false);
imageView.setScaleType(ScaleType.FIT_XY);
} else {
imageView = (ImageView) convertView;
imageView.setScaleType(ScaleType.FIT_XY);
}
imageLoader.displayImage(imagesIds[position], imageView, options);
imageView.setScaleType(ScaleType.FIT_XY);
return imageView;
}
Run Code Online (Sandbox Code Playgroud)
以下是它的外观:

正如你所看到的,高度ImageView很好,但我想它的宽度是一样的.我无法通过我的活动访问我的位图图像,所以请不要让我调整我的位图大小.我真的不明白为什么它不能正常工作.
编辑:
只是为了使问题更容易理解.ImageView计算每个设备的高度.每个设备都不同.我希望我的宽度ImageView与它的高度相同.我正在使用该Two-WayGridView库来显示图像,如果它有任何区别.
我正在我的Android应用程序中实现备份/恢复系统.
每隔几分钟就会发生一次自动备份.在我的应用程序被卸载然后再次安装之后,我正在尝试从我的SD卡恢复我的数据库备份文件.
备份有效,但问题在于:
每当用户再次安装我的应用程序时,就会发现文件未找到异常,但是,如果用户关闭应用程序,然后再次打开它,则恢复就可以了.不知何故,恢复首次启动应用程序时会遇到问题.
还原必须在首次启动时进行.
注意: backupExists函数返回true.
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(backUpExists()){
restoreDB();
}
}
private boolean backUpExists()
{
try{
File sd = Environment.getExternalStorageDirectory();
if (sd.canRead()){
String backupDBPath = "myDB";
File backupedDB = new File(sd, backupDBPath);
if(backupedDB.exists()){
return true;
}
}
} catch(Exception ex) {
Toast.makeText(getBaseContext(), ex.toString(), Toast.LENGTH_LONG).show();
}
return false;
}
private void restoreDB()
{
try{
File sd = Environment.getExternalStorageDirectory();
File data = Environment.getDataDirectory();
if (sd.canWrite()) {
String restroredDBPath = "//data//myPackage//databases//myDB";
String backupDBPath = "myDB"; …Run Code Online (Sandbox Code Playgroud) sqlite android database-restore database-backups android-sdcard
好吧,所以我有一个图像,它的分辨率是:1054X1054.我想设置该图像,使其完全符合Android设备的屏幕尺寸.(我将在某些编辑器中剪切图像作为nessacary).所以我的问题是:我怎么知道我的图像应该是什么分辨率,因此它将覆盖设备背景而无需调整图像大小.(对于mdpi,hdpi,ldpi)
我问这个问题,因为我一直在误解"多屏幕分辨率"是如何工作的.