奇妙な問題があります。アプリの設定から閲覧可能なライセンス情報を表示したい。内部にDialogPreference
をホストするだけの非常に単純なカスタムをscrollveiw
使用しています。textview
Android 2.3.5 を実行しているテスト デバイスでは、ダイアログが非常に暗くて読みにくいことを除いて、すべて正常に動作します。Android > 4.0 を実行しているメイン デバイスで完全に動作します。何が問題なのですか?
Android 2.3.5 では次のようになります。
私のXML:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="7dp"
android:orientation="vertical" >
<TextView
android:id="@+id/info_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textIsSelectable="false"
android:layout_margin="7dip" />
</ScrollView>
私のコード:
public class PreferenceDialogOpenSourceLicenses extends DialogPreference {
private String dialogeMessage;
private Context context;
public PreferenceDialogOpenSourceLicenses(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
setPersistent(false);
setDialogLayoutResource(R.layout.preference_dialog_license);
dialogeMessage = getActionBarSherlockLicense();
}
@Override
public void onBindDialogView(View view){
TextView textView = (TextView)view.findViewById(R.id.info_textview);
textView.setText(dialogeMessage);
super.onBindDialogView(view);
}
private String getActionBarSherlockLicense() {
try {
InputStream is = context.getAssets().open("licence_apache_v2.txt");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
String text = new String(buffer);
return text;
} catch (IOException e) {
return context.getString(R.string.error_could_not_get_license);
}
}
}