我有经典的Android应用程序与相机预览(常见的实现,可以在许多教程[marakana等]中找到),应该在给定的时间间隔拍照.完成线程和杀死线程,"method called after release"处理错误.但有时会100发生众所周知的错误.我接受了它发生并试图处理它的事实.我实现了ErrorCallback它的onError方法,其中当前的相机对象被释放并实例化为官方文档中所写的新对象.
但是(毫不奇怪)这还不够.可能错误地分配了新相机,因为"CameraDemo has been exited unexpectedly"现在出现了一条消息.我已经阅读了许多文档和例子,希望能够解释一个适当的程序但显然没有人有这样的问题.所以我想问一下除了发布和创建新相机还有什么办法?这是代码:
ErrorCallback CEC = new ErrorCallback()
{
public void onError(int error, Camera camera)
{
Log.d("CameraDemo", "camera error detected");
if(error == Camera.CAMERA_ERROR_SERVER_DIED)
{
Log.d("CameraDemo", "attempting to reinstantiate new camera");
camera.stopPreview();
camera.setPreviewCallback(null);
camera.release(); //written in documentation...
camera = null;
camera = Camera.open();
}
}
};
Run Code Online (Sandbox Code Playgroud)
不久 - 如果我在onError回调中释放并重新创建相机,则会RuntimeException在释放后调用Method(takePicture).那么我应该以某种方式将表面支架再次分配给相机还是重新创建表面支架?
将我引导到某些论坛,描述或解决它等等就足够了.感谢您的帮助.
所以我已经开始迁移到我的Android应用程序的官方支持设计库,替换元素.我刚刚用官方替换了FAB(实现为ImageButton)android.support.design.widget.FloatingActionButton.但是按钮内的图标与其中的图标相比较小ImageButton.可能是什么原因?
FloatingActionButton的实施:
<android.support.design.widget.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/icon" />
Run Code Online (Sandbox Code Playgroud)
尝试添加,app:fabSize="normal但也没有用.
这是它使用后的方式FloatingActionButton:

这就是它在使用它时的样子ImageButton:

ListView我AlertDialog在Android中有一个设置,我试图添加分隔符作为标题标题来帮助组织信息.我想出了如何显示它们......但它们仍然可由用户选择,这是不好的.
有没有办法禁用Android中可选择的项目ListView?我找到了一种方法isEnabled(int position)来查看某个项目是否已启用,但没有查看是否已禁用该项目.
我需要定期执行Wifi扫描.当时间间隔设置为1-2秒时,我遇到了问题.好像我没有得到任何东西ScanResult.是否有最短的时间设置,以便WifiManager能够执行成功的WiFi扫描?
这是代码.我用a Service来做Wifi扫描:
public class WifiScanning extends Service{
private static final String TAG = "WifiScanning";
private Timer timer;
public int refreshRate, numberOfWifiScan, wifiScanGranularity;
WifiReceiver receiverWifi = new WifiReceiver();
WifiManager wifi;
StringBuilder sb;
List<ScanResult> wifiList;
List<APData> apdataList;
List<List<APData>>surveyData;
private TimerTask updateTask = new TimerTask() {
@Override
public void run() {
Log.i(TAG, "Timer task doing work");
wifi.startScan();
}
};
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() …Run Code Online (Sandbox Code Playgroud) 我在设置一些片段菜单项时遇到了问题ActionBar,我找到了解决问题的方法,但我不明白它为什么会起作用.
我想在onCreateOptionsMenu方法中从菜单xml文件中对其进行充气后,立即更改菜单项中的可见性.代码似乎工作正常,但没有明显的效果.我解决了在onCreateOptionsMenu方法中夸大菜单但在方法中改变它的可见性的问题onPrepareOptionsMenu.
我想知道的是为什么改变可见性onCreateOptionsMenu不起作用.
我能做些什么的onPrepareOptionsMenu,我不能做onCreateOptionsMenu?
这里有什么模式吗?
谢谢!
以下是相关代码,以防万一:
public class MyFragment extends Fragment {
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.my_menu, menu);
// This does not work, compiles and runs fine, but has no visible effect
MenuItem someMenuItem = menu.findItem(R.id.some_menu_item);
someMenuItem.setVisible(false);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
// This does work
MenuItem someMenuItem = menu.findItem(R.id.some_menu_item);
someMenuItem.setVisible(false);
}
}
Run Code Online (Sandbox Code Playgroud) 我DialogFragment在我的项目中使用,我正在禁用标题
getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
Run Code Online (Sandbox Code Playgroud)
但我的对话变得歪曲了.我想保持对话框原样并删除标题.我能怎么做?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff2d35ff">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="39dp"
android:layout_marginLeft="39dp"
android:layout_gravity="center_horizontal"
android:background="#ff6cff23">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ItemName"
android:id="@+id/itemName"
android:layout_weight="1"
android:background="#ffd861ff"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ItemPrice"
android:id="@+id/itemPrice"
android:layout_weight="1"
android:background="#ff2ff8ff"/>
</LinearLayout>
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:id="@+id/itemImage"
android:layout_gravity="center_horizontal"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="some test"
android:id="@+id/textView9"
android:layout_gravity="center_horizontal"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_horizontal"
android:background="#ffffff2c">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-"
android:id="@+id/itemMinus"
/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="1"
android:id="@+id/textView11"
android:layout_weight="1"
android:gravity="center_horizontal"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:id="@+id/itemPlus"/>
</LinearLayout>
</LinearLayout> …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照指南制作禁用的EditText样式:
https://www.google.com/design/spec/components/text-fields.html#text-fields-labels
<EditText
android:id="@+id/account_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/test_account"
android:enabled="false" />
Run Code Online (Sandbox Code Playgroud)
我已经实现了材料设计风格,所以我的所有小部件看起来都很重要.
问题是:有没有办法在不添加其他视图的情况下使用样式将此虚线下划线?
我的styles.xml:
<style name="Theme.Main" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="android:editTextStyle">@style/android:Widget.Material.EditText</item>
</style>
Run Code Online (Sandbox Code Playgroud) 我想创建一个全屏但没有隐藏状态栏的对话框.
如果使用样式Theme_Light_NoTitleBar_Fullscreen,则对话框占据整个屏幕.
如果使用样式Theme_Material_Light_NoActionBar_TranslucentDecor,它似乎工作,但对话框的顶部实际上变得透明.我可以通过查询状态栏高度并在我的对话框布局中添加顶部填充来使其更好.这个解决方案似乎工作正常,但如果我将动画附加到它上面它不起作用.
我很困惑为什么谷歌使对话框如此复杂使用,如果我正确地做了一个全屏对话框在这里?
我正在尝试用span来替换从getText()返回的可编辑部分.
我尝试过getText().replace(),但这只适用于CharSequences.
我试图这样做的原因是我可以一个接一个地突出显示EditText的部分(经过一小段延迟),而不是通过并突出显示整个EditText(对于大文件来说可能很慢).
有没有人知道我将如何做到这一点?
我正在研究setNextMediaPlayer()制作无间隙播放音乐播放器的方法.
setNextMediaPlayer()是一个很好的方法来启用无间隙播放,但我有一个问题是刷新下一首歌的信息到布局.当我使用setNextMediaPlayer()方法时,我不需要使用start()方法来开始播放,因此当播放完全开始时无法捕捉到.或者,我把我的信息刷新方法,onCompletion但它有一个限制.
public void onCompletion(MediaPlayer mp) {
Log.d(TAG, "onCompletion():");
displayInfoSingle(nextItem);//refresh albumart and song info.
}
Run Code Online (Sandbox Code Playgroud)
是否有任何侦听器检测MediaPlayer对象何时开始播放?
在Tarun Varshney的回答后添加>>>
我用setNextMediaPlayer()下面打mp2旁边mp1的无缝连接.
mp2 = new MediaPlayer();
mp2.setDataSource(nextItem.getUri());
mp2.setOnCompletionListener(this);
mp2.prepare();
mp1.setNextMediaPlayer(mp2);
Run Code Online (Sandbox Code Playgroud)
mp2已经可以了,因为播放之前准备**mp2.prepare();**所以onPreparedListener也不会在适当的时间我想被调用.是否有任何其他的方法来设置mp2为一个参数setNextMediaPlayer的mp1?
android ×10
android-menu ×1
dialog ×1
events ×1
listview ×1
media ×1
menu ×1
replace ×1
spannable ×1
wifimanager ×1